php开发,例如原来是循环一个数组来得到结果foreach 
SELECT * FROM test WHERE ID=$id;这样根据数组的元素多少需要多次查询后来我改成了SELECT * FROM test WHERE ID IN($id);这样只需要执行一次查询就可以返回结果.我想知道是否有更好或者更正确的查询方法.thx.

解决方案 »

  1.   

    补充一下 这个是已经处理过的 $id=1,2,3,4,5...
    IN $id 
      

  2.   

    select * from a inner join lsb b on a.id=b.id
    在ID上建立索引
    IN也可以
      

  3.   

    遍历数组 也可以考虑把语句拼成这样
    SELECT * FROM test WHERE ID=1
    union
    SELECT * FROM test WHERE ID=2
    union
    SELECT * FROM test WHERE ID=3
      

  4.   

    你的id很多吗  不多的话用union all 连接查询也可以。网上说对于索引列,union all 要快于or/in , 否则or/in 快于union all  自己测试便知道。
      

  5.   

    你的方法已经是最好的了。 in (1,2,3..)不需要做其它改进了,你的ID应该是主键吧,如果这样则不需要再创建索引了。
      

  6.   

    http://topic.csdn.net/u/20090626/16/65f043cf-b9d9-4707-b660-9857461177f4.html
    MySQL   中   where   id   in   (1,2,3,4,...)   的效率问题讨论 
      

  7.   


    ok,谢谢大伙的教诲,乔丹现在混mysql 啊 等我忙完也来好好学习一下.