Выберите из таблицы MySQL WHERE field = '$ array'? - PullRequest
16 голосов
/ 05 марта 2010

Если у меня есть массив скажем, некоторые идентификаторы пользователей. Как я мог сделать что-то вроде этого:

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

Есть ли простой способ сделать это, я думал о циклическом просмотре элементов массива и создании одного большого оператора "WHERE - OR - OR - OR", но я подумал, что это может быть немного медленно для больших массивов .

Ответы [ 2 ]

28 голосов
/ 05 марта 2010

Использование IN:

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

вы можете использовать implode(",", $array), чтобы получить список из массива.

11 голосов
/ 05 марта 2010

Вы хотите использовать IN:

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

Используйте implode для построения строки:

$sql = "SELECT * FROM `myTable` WHERE `myField` IN (" . implode(',', $array) . ")";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...