Heim > Datenbank > MySQL-Tutorial > Warum schließt MySQL NULL-Werte aus, wenn der Operator != in einer WHERE-Klausel verwendet wird?

Warum schließt MySQL NULL-Werte aus, wenn der Operator != in einer WHERE-Klausel verwendet wird?

DDD
Freigeben: 2025-01-09 19:51:41
Original
928 Leute haben es durchsucht

Why Does MySQL Exclude NULL Values When Using the != Operator in a WHERE Clause?

MySQL-Vergleich mit NULL-Werten

Es ist wichtig zu verstehen, wie MySQL diese Vergleiche handhabt, wenn es um Spalten geht, die NULL-Werte zulassen, wie etwa die CODE-Spalte im Beispiel. Warum schließt die folgende Abfrage Zeilen aus, in denen CODE NULL ist?

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

Dies liegt daran, dass der Operator != (ungleich) nicht explizit auf NULL-Werte prüft. Es wird nur geprüft, ob der Wert ungleich „C“ ist. Da NULL ein spezieller Wert ist, der auf einen fehlenden Wert hinweist, ist er weder gleich noch ungleich einem bestimmten Wert.

Um NULL-Werte einzuschließen, müssen Sie den Operator IS NULL oder IS NOT NULL verwenden. Diese Operatoren prüfen explizit, ob NULL-Werte vorhanden sind. Die richtige Abfrage sollte sein:

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

Durch die Verwendung von IS NULL oder IS NOT NULL stellt die Abfrage sicher, dass sie Zeilen enthält, in denen CODE NULL ist, sowie Zeilen, in denen CODE nicht gleich „C“ ist. Dies liegt daran, dass der OR-Operator beide Bedingungen als gültige Kriterien für übereinstimmende Zeilen behandelt.

Zusammenfassend lässt sich sagen, dass Sie beim Vergleichen von Spalten, die möglicherweise NULL-Werte enthalten, immer den Operator IS NULL oder IS NOT NULL verwenden, um explizit auf das Vorhandensein von NULL-Werten zu testen. Andernfalls können die Vergleichsergebnisse nicht den Erwartungen entsprechen.

Das obige ist der detaillierte Inhalt vonWarum schließt MySQL NULL-Werte aus, wenn der Operator != in einer WHERE-Klausel verwendet wird?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage