php / mySQL:通过数组中的id查询记录?

时间:2016-08-11 08:14:36

标签: php mysql

我想通过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))

感谢

3 个答案:

答案 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是   在某些情况下更快。

Related post

答案 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)."'"

请确保that your ids are safe