Вопрос по php, mysql, sql – MySQL, где НЕ IN массив имен?

33

Я хотел бы исключить эти альбомы, которые имеют название:

$ban_album_names = array('Wall', 'Profile', 'Cover', 'Instagram');

Как мне правильно написать,

SELECT * FROM albums WHERE name NOT IN ???

Как я могу сделать так, чтобы это выглядело в массиве, и если имя совпадает, оно должно! = Строка

Ваш Ответ

2   ответа
24

КОД MySQL

SELECT * FROM albums WHERE name NOT IN ('Wall', 'Profile', 'Cover', 'Instagram')
65

Попробуй это:

$sql = "SELECT *
    FROM albums
    WHERE name NOT IN ( '" . implode( "', '" , $ban_album_names ) . "' )";
Это ужасный ответ и приведет к куче ненужных запросов. Смотри ниже.
Как насчет того, когда у вас есть массив идентификаторов, целых чисел?
этот порядок параметров, возможно, был соответствующим на момент написания. однако для людей, которые сталкиваются с этим, теперь обратите внимание, что задокументированный порядок является «клеем»; сначала, а затем массив. технически они оба работают до сих пор, но это не задокументированный порядок.
Для данного списка имен в строках нет никаких встроенных кавычек; если это так, вам нужно создать$banned список, вызывающий соответствующую функцию цитирования, чтобы предотвратитьSQL Injection.

Похожие вопросы