15
如果我有一些说,一些ID的用户。我怎么会做这样的事情:
$array = array(1,40,20,55,29,48);
$sql = "SELECT * FROM `myTable` WHERE `myField`='$array'";
有一个简单的方法来做到这一点,我想到了通过数组项循环,然后建立一个大的“WHERE - 或 - OR - OR”声明但我认为这对于大型数组可能会有点慢。
如果我有一些说,一些ID的用户。我怎么会做这样的事情:
$array = array(1,40,20,55,29,48);
$sql = "SELECT * FROM `myTable` WHERE `myField`='$array'";
有一个简单的方法来做到这一点,我想到了通过数组项循环,然后建立一个大的“WHERE - 或 - OR - OR”声明但我认为这对于大型数组可能会有点慢。
使用IN
:
$sql = "SELECT * FROM `myTable` WHERE `myField` IN (1,40,20,55,29,48)";
可以使用implode(",", $array)
以获取列表一起来自阵列。
你想用IN
:
WHERE `myfield` IN (1,40,20,55,29,48)
使用implode构建字符串:
$sql = "SELECT * FROM `myTable` WHERE `myField` IN (" . implode(',', $array) . ")";
所以我会做“IN($ array)”? – tarnfeld 2010-03-04 21:29:18
不,使用implode来构造字符串。 – 2010-03-04 21:30:27
无法正常工作@Mark Byers – 2017-01-19 17:31:27