2012-09-01 9 views
24

chciałbym wykluczyć te albumy, które ma nazwę:MySQL gdzie NIE w tablicy nazw?

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

Jak napisać poprawnie,

SELECT * FROM albums WHERE name NOT IN ??? 

Jak mogę sprawić wrażenie w tablicy, a jeśli nazwa pasuje do niego należy! = wiersz

Odpowiedz

53

Wypróbuj:

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

Ah świetnie! Dzięki – Karem

+1

Dla podanej listy nazw nie ma żadnych wbudowanych cudzysłowów w łańcuchach; jeśli tak, to musisz utworzyć listę '$ banned' wywołującą odpowiednią funkcję cytowania, aby zapobiec [SQL Injection] (http://xkcd.com/327). –

+0

To jest straszna odpowiedź i spowoduje mnóstwo niepotrzebnych zapytań. Zobacz poniżej. – Jehan

15

CODE MySQL

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