2017-05-12 6 views
0

Ich bin im Moment selbstlernend, um ein Programmierer zu werden, und ich habe in einen kleinen Haken gerieten und kann nicht scheinen, herauszufinden, warum dieser bestimmte Code nicht Arbeit ...MySQL Fehler passiert: Operand sollte 1 Spalte (n) enthalten

Ich versuche eine Liste von Filmtiteln zu erstellen, die nicht das Wort 'kill' oder 'blood' im Titelnamen enthalten und vom Genre Thriller oder Horror sind (griezel in holländisch: p).

Dafür verwende ich den Code unter

SELECT filmId, titel, genre 
FROM films 
INNER JOIN genres ON films.genreId = genres.genreId 
WHERE titel NOT LIKE ('%blood%', '%kill%') 
    AND genre IN ('thriller', 'griezel') 

Wenn ich versuche, diesen Code auszuführen, wird eine Fehlermeldung, die folgenden

Operand 1 Spalte enthalten sollte (n)

Jede Hilfe wäre sehr willkommen!

Vielen Dank im Voraus;)

Antwort

0

Sie nicht mehrere Muster wie die angeben können.

Sie müssen getrennte not like Prädikate verwenden und OR sie:

select filmId, 
    titel, 
    genre 
from films 
inner join genres on films.genreId = genres.genreId 
where (
     titel not like '%blood%' 
     or titel not like '%kill%' 
     ) 
    and genre in ('thriller', 'griezel') 

Oder vielleicht gemeint Sie AND verwenden, um den Titel zu überprüfen, nicht enthält sowohl Blut und töten

select filmId, 
    titel, 
    genre 
from films 
inner join genres on films.genreId = genres.genreId 
where (
     titel not like '%blood%' 
     and titel not like '%kill%' 
     ) 
    and genre in ('thriller', 'griezel') 
Verwandte Themen