这两种方法中的哪一种更快。
方法A:
for( $i = 0; $i < 10; $i++ )
// SELECT * FROM table WHERE id = $i ( run and fetch )
方法B:
for( $i = 0; $i < 10; $i++ )
$ids .= $i . ",";
// SELECT * FROM table WHERE id IN ( $ids )
答案 0 :(得分:2)
如果开始为0且结尾为10,那么为什么不在查询
之间使用select * from tbl where id between 0 and 10
我认为这将是最快的
答案 1 :(得分:1)
方法A在任何时间点都不是推荐的。因为每次都会使用mysql的IN()来命中mysql服务器。使用IN(),您可以在单个查询中完成它,它将比方法A更快更有效。 还有一种更好的方法,如下所示。使用implode()你会喜欢这样:
$array = array(1,2,3,4);
$comma_separated = implode(",", $array);
// SELECT * FROM table WHERE id IN ( $ids )
答案 2 :(得分:1)
使用以下方法:
$ids=array();
for( $i = 0; $i < 10; $i++ )
{
$ids[]=$i;
}
if(count($ids) > 0)
{
$query="SELECT * FROM table WHERE id IN (". implode(',',$ids)." )";
}