有什么区别:
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'];
}
答案 0 :(得分:4)
第一个示例效率更高,因为只运行了1个sql查询。第二个示例有x个查询量,速度要慢得多。
我会说你应该从不以第二种方式做到这一点,而且始终是第一种方式。
答案 1 :(得分:2)
第一个示例仅运行1个查询,而第二个示例运行N个查询。
哦是的,从不第二种方式。
答案 2 :(得分:0)
我认为仅在某些情况下,当您想要以输入ID的确切顺序从数据库中提取数据时,您可能希望使用第二个语句。
在这种情况下,当您使用第一个查询时,如果这些ID在DB中不按此顺序排列,则结果可能不按输入ID(1,2,6,8)的顺序排列。与DB匹配的第一个id将返回结果。