MySQL PHP – SELECT WHERE id = array ()?

Возможный дубликат:
Запрос MySQL с использованием массива
Передача массива в mysql

У меня есть массив в PHP:

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

Как вы можете видеть, у меня есть массив разных значений, но я хочу написать инструкцию MYSQL, которая проверяет, равен ли id любому из значений в массиве. Например, если строка имеет id 1, она вернет эту строку, то же самое для 4, 5 и 7. Длина массива может варьироваться в зависимости от характера программы, так что это проблема. Могу я просто сделать:

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

Или есть лучший способ?
Если бы я был неясен, пожалуйста, обратитесь за дополнительной информацией.

Используйте IN .

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

Вы ищете инструкцию IN() . Это будет проверяться, если заданное поле содержит любое из 1 или более значений.

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

Вы можете использовать простой цикл для преобразования переменной $array в правильный формат. Не забудьте вспомнить SQL-инъекцию, если значения вашего массива поступают из передней части.

Просто используйте синтаксис ID IN () :

 $sql = "SELECT FROM `table` WHERE `ID` IN (".implode(',',$array).")"; 

Вы можете написать свой запрос следующим образом:

 select * from table where id in (1, 4, 6, 7) 

Вы можете добавить столько значений, сколько вам нужно.

Вы можете SELECT WHERE id IN (item1, item2...) . Просто запустите свой PHP-массив, чтобы построить массив для запроса.

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

$sql = 'SELECT FROM WHERE id IN (' . implode(",", $array) . ')';

В MySQL может быть предел, сколько значений вы можете использовать в списке с оператором IN .