mysql中“WHERE”和“IN”的区别

时间:2011-01-23 20:00:28

标签: php mysql

有什么区别:

SELECT * FROM news WHERE cat_id IN (1, 2, 6, 8);

并创建一个循环:

 foreach($cat as $key => $value){
    $sql = "SELECT * FROM news WHERE cat_id = $value['id'];
 }

3 个答案:

答案 0 :(得分:4)

第一个示例效率更高,因为只运行了1个sql查询。第二个示例有x个查询量,速度要慢得多。

我会说你应该从不以第二种方式做到这一点,而且始终是第一种方式。

答案 1 :(得分:2)

第一个示例仅运行1个查询,而第二个示例运行N个查询。

哦是的,从不第二种方式。

答案 2 :(得分:0)

我认为仅在某些情况下,当您想要以输入ID的确切顺序从数据库中提取数据时,您可能希望使用第二个语句。

在这种情况下,当您使用第一个查询时,如果这些ID在DB中不按此顺序排列,则结果可能不按输入ID(1,2,6,8)的顺序排列。与DB匹配的第一个id将返回结果。