2012-09-01 6 views
24

würde Ich mag diese Alben auszuschließen, dass Namen:MySQL wo NICHT IN Name Array?

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

Wie schreibe ich richtig,

SELECT * FROM albums WHERE name NOT IN ??? 

Wie kann ich es in der Anordnung aussehen, und wenn der Name es passt die Zeile sollte! =

Antwort

53

Versuchen Sie dies:

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

Ah großartig! Danke – Karem

+1

Für die angegebene Liste der Namen gibt es keine eingebetteten Anführungszeichen in den Strings; Wenn dies der Fall wäre, müssten Sie die Liste "$ banned" erstellen, indem Sie eine entsprechende Anführungsfunktion aufrufen, um [SQL Injection] zu verhindern (http://xkcd.com/327). –

+0

Dies ist eine schreckliche Antwort und wird zu einer Reihe von unnötigen Abfragen führen. Schau unten. – Jehan

15

MySQL wird

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