读书人

SQL的请问

发布时间: 2012-03-20 14:01:11 作者: rapoo

SQL的请教
php开发,例如原来是循环一个数组来得到结果

foreach
SELECT * FROM test WHERE ID=$id;

这样根据数组的元素多少需要多次查询

后来我改成了

SELECT * FROM test WHERE ID IN($id);

这样只需要执行一次查询就可以返回结果.我想知道是否有更好或者更正确的查询方法.thx.

[解决办法]
这方法就挺好
[解决办法]
也可以将$id中的内容存入表中,与工作表连接
[解决办法]
select * from a inner join lsb b on a.id=b.id
在ID上建立索引
IN也可以
[解决办法]
遍历数组 也可以考虑把语句拼成这样
SELECT * FROM test WHERE ID=1
union
SELECT * FROM test WHERE ID=2
union
SELECT * FROM test WHERE ID=3
[解决办法]
你的id很多吗 不多的话用union all 连接查询也可以。

网上说对于索引列,union all 要快于or/in , 否则or/in 快于union all 自己测试便知道。
[解决办法]
你的方法已经是最好的了。 in (1,2,3..)

不需要做其它改进了,你的ID应该是主键吧,如果这样则不需要再创建索引了。

读书人网 >Mysql

热点推荐