2010-03-04 63 views
15

如果我有一些说,一些ID的用户。我怎么会做这样的事情:

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

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

回答

24

使用IN

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

可以使用implode(",", $array)以获取列表一起来自阵列。

11

你想用IN

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

使用implode构建字符串:

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

所以我会做“IN($ array)”? – tarnfeld 2010-03-04 21:29:18

+1

不,使用implode来构造字符串。 – 2010-03-04 21:30:27

+0

无法正常工作@Mark Byers – 2017-01-19 17:31:27