从 mysql 表中选择 WHERE 字段='$array'?

2022-08-30 23:03:32

如果我有一个数组,一些用户的ID。我怎么能做这样的事情:

$array = array(1,40,20,55,29,48);
$sql = "SELECT * FROM `myTable` WHERE `myField`='$array'";

有没有一个简单的方法来做到这一点,我想过循环数组项,然后建立一个大的“WHERE -- OR -- OR -- OR -- OR”语句,但我认为对于大型数组来说可能有点慢。


答案 1

用:IN

$sql = "SELECT * FROM `myTable` WHERE `myField` IN (1,40,20,55,29,48)";

您可以使用 从数组中获取列表。implode(",", $array)


答案 2

您想使用 :IN

WHERE `myfield` IN (1,40,20,55,29,48)

使用内爆来构造字符串:

$sql = "SELECT * FROM `myTable` WHERE `myField` IN (" . implode(',', $array) . ")";