Heim > Datenbank > MySQL-Tutorial > Warum schließt der MySQL-Operator „!=' Zeilen mit NULL-Werten aus?

Warum schließt der MySQL-Operator „!=' Zeilen mit NULL-Werten aus?

Susan Sarandon
Freigeben: 2025-01-09 19:31:42
Original
996 Leute haben es durchsucht

Why Does MySQL's `!=` Operator Exclude Rows with NULL Values?

MySQL: NULL-Wert-Vergleiche verstehen

Übersicht:
Für die effektive Arbeit mit MySQL ist ein klares Verständnis des Verhaltens von NULL-Werten bei Vergleichsoperationen erforderlich. Dieser Artikel konzentriert sich auf das Verhalten von NULL-Werten bei Verwendung des != (ungleich)-Operators.

Das Problem: Angenommen, eine Tabelle enthält eine CODE-Spalte, die NULL-Werte zulässt. Warum werden in der folgenden Abfrage Zeilen weggelassen, in denen CODE NULL ist, obwohl != verwendet wird?

<code class="language-sql">SELECT * FROM TABLE WHERE CODE!='C'</code>
Nach dem Login kopieren

Die Lösung: Der !=-Operator von MySQL erzeugt beim Vergleich eines Nicht-NULL-Werts mit NULL kein Wahr/Falsch-Ergebnis. Der Vergleich gilt als unbestimmt.

Um NULL-Werte korrekt zu verarbeiten, verwenden Sie IS NULL oder IS NOT NULL. Die folgende Abfrage schließt genau Zeilen aus, bei denen CODE gleich „C“ oder NULL ist:

<code class="language-sql">SELECT * FROM TABLE WHERE CODE IS NULL OR CODE!='C'</code>
Nach dem Login kopieren

Dieser Ansatz stellt sicher, dass beide Bedingungen unabhängig voneinander ausgewertet werden und nur Zeilen ausgeschlossen werden, die eine der beiden Bedingungen erfüllen.

Weitere Klarstellung: Obwohl CODE != '' manchmal in der MySQL-Dokumentation oder in Foren vorkommt, ist es kein Ersatz für CODE IS NOT NULL. Der !=-Operator vergleicht Werte; IS NULL prüft, ob ein Wert fehlt.

Daher sind diese Abfragen nicht gleichwertig:

<code class="language-sql">SELECT * FROM TABLE WHERE CODE != ''
SELECT * FROM TABLE WHERE CODE IS NOT NULL</code>
Nach dem Login kopieren

Die Verwendung von IS NULL und IS NOT NULL gewährleistet die ordnungsgemäße Verarbeitung und Prüfung von NULL-Werten in MySQL-Abfragen.

Das obige ist der detaillierte Inhalt vonWarum schließt der MySQL-Operator „!=' Zeilen mit NULL-Werten aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage