日期:2014-05-16  浏览次数:20616 次

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应该是主键吧,如果这样则不需要再创建索引了。