MySQL PHP - SELECT WHERE ID = array()?

2022-08-30 11:03:41

可能的重复:
使用数组
的MySQL查询 将数组传递给mysql

我在PHP中有一个数组:

$array = array(1, 4, 5, 7);

如您所见,我有一个不同值的数组,但我想编写一个MYSQL语句,该语句将检查是否等于数组中的任何值。例如,如果某行的 1,它将返回该行,4、5 和 7 也是如此。数组的长度可能因程序的性质而异,因此这就是问题所在。我能做:idid

SELECT ...
  FROM ...
 WHERE id = '$array'

还是有更好的方法?
如果我不清楚,请问我更多信息。


答案 1

用。IN

$sql = 'SELECT * 
          FROM `table` 
         WHERE `id` IN (' . implode(',', array_map('intval', $array)) . ')';

答案 2

您正在寻找的是声明。这将测试给定字段是否包含 1 个或多个值中的任何一个。IN()

SELECT * FROM `Table` WHERE `id` IN (1, 2, 3)

您可以使用简单的循环将变量转换为正确的格式。如果数组值来自前端,请务必注意 SQL 注入。$array