2012-09-01 6 views
24

Vorrei escludere questi album, che ha nome:MySQL dove array di nomi NON IN?

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

Come faccio a scrivere correttamente,

SELECT * FROM albums WHERE name NOT IN ??? 

Come posso farlo sembrare nella matrice, e se il nome corrisponde esso dovrebbe! = riga

risposta

53

Prova questo:

$sql = "SELECT * 
    FROM albums 
    WHERE name NOT IN ('" . implode("', '" , $ban_album_names) . "')"; 
+0

Ah fantastico! Grazie – Karem

+1

Per l'elenco di nomi fornito, non ci sono citazioni incorporate nelle stringhe; se ci fosse, dovresti creare l'elenco '$ banned' chiamando una funzione di quotatura appropriata per prevenire [SQL Injection] (http://xkcd.com/327). –

+0

Questa è una risposta terribile e risulterà in una serie di query non necessarie. Guarda sotto. – Jehan

15

CODE MySQL è

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