我想通过ID查询几条记录,如:
$ids = array(10,12,14,16,....);
查询类似于:
select * from users where id=10 or id=12 or id=14 or id=16 ..
是否可以以更舒适的方式查询它(与php相比):
select * from user where in_array(id, array(10,12,14,16))
感谢
答案 0 :(得分:1)
您可以使用IN
代替OR clauses
select * from users where id IN (put_your_array_here)
示例:强>
select * from users where id IN (10,12,14,16);
注意:强>
根据manual for MySQL,如果值是常数
IN
对列表进行排序,然后使用二进制搜索。我会想象OR
以无特定顺序逐个评估它们。所以IN
是 在某些情况下更快。
答案 1 :(得分:0)
试试这个。
$id = array(10,12,14,16,....);
$ids = join("','",$id);
$sql = "select * from user where id IN ('$ids')";
OR
$ids = implode(',', $id);
$sql = "select * from user where id IN ($ids)";
答案 2 :(得分:0)
你可以在PHP中使用implode这样做:
"select * from users where id in '".implode("','", $ids)."'"