2010-12-18 7 views
1

Ich benutze mySql Server, und ich habe diese Tabelle: Student (studentId, studentName, Abschnitt) Spalte Abschnitt kann entweder gefüllt werden (A, B, C, D, E, .... oder Z)Wie zu erstellen (nicht gleich oder nicht gleich oder nicht .. etc) Abfrage in Sql

was ich will ist, um alle Zeilen, die nicht in Abschnitt a oder b oder c ist mein Problem ist, wie nicht gleich oder zu schreiben nicht gleich ... mehrere Zeit in where-Klausel

das ist mein Versuch, aber es richtig

SELECT studentName, section 
FROM Student 
WHERE section <> 'a'OR section <> 'b' or section <> 'c' 
funktioniert nicht

Antwort

0
SELECT studentName, section 
FROM Student 
WHERE section <> 'a' and section <> 'b' and section <> 'c' 

oder

SELECT studentName, section 
FROM Student 
WHERE section not in ('a', 'b', 'c') 
1
WHERE column NOT IN('A', 'b', ...) 
1

Versuchen

Where section not in('a', 'b', 'c') 
1

Das Problem mit Ihrer Anfrage ist die OR. Sie möchten stattdessen AND verwenden. Der Grund dafür ist, dass jeder Datensatz immer einer dieser Bedingungen entspricht, weil es möglicherweise nicht alle drei (oder sogar zwei) der Werte sein kann, gegen die Sie die Ungleichheit prüfen.

Eine noch bessere Option wäre die Verwendung der IN -Klausel, insbesondere NOT IN, um eine Liste von Elementen anzugeben, mit denen eine Übereinstimmung erzielt werden soll. d.h. WHERE section NOT IN ('a','b','c'). Versuchen

1

WHERE section NOT IN ('a','b','c')