Heim > Datenbank > MySQL-Tutorial > Warum gibt „NULL != NULL' in SQL nicht immer „True' zurück?

Warum gibt „NULL != NULL' in SQL nicht immer „True' zurück?

Barbara Streisand
Freigeben: 2025-01-03 08:49:39
Original
714 Leute haben es durchsucht

Why Doesn't `NULL != NULL` Always Return True in SQL?

Warum Ungleichheit mit NULL nicht immer wahr ist

Beim Vergleich von NULL-Werten mit dem Ungleichheitsoperator ("!=") ist dies der Fall Oft wird angenommen, dass das Ergebnis wahr sein sollte, da NULL nicht sich selbst entspricht. In bestimmten Kontexten wie SQL ist diese Annahme jedoch nicht gültig.

Ternäre Logik von SQL

In SQL stellt NULL einen unbekannten Wert dar. Dies führt einen dritten logischen Zustand jenseits von wahr und falsch ein, der als „unbekannt“ bekannt ist. Infolgedessen folgen Ungleichheitsvergleiche mit NULL einer ternären Logik, wobei das Ergebnis eine von drei Optionen sein kann:

  • Wahr
  • Falsch
  • Unbekannt

Beispiel:

Überlegen die folgende Aussage:

WHERE (A <> B)
Nach dem Login kopieren

Wenn A und B beide NULL sind, gibt der obige Ausdruck „unbekannt“ zurück, da es keine Möglichkeit gibt, festzustellen, ob sie wirklich ungleich sind oder ob beide unbekannt sind.

Implikationen für die Ungleichheitsprüfung

Diese ternäre Logik schreibt vor, dass eine einfache Ungleichheitsprüfung mit NULL durchgeführt werden muss gibt möglicherweise nicht immer true zurück. Um genaue Ergebnisse zu gewährleisten, ist eine explizite Prüfung auf NULL-Bedingungen mit „IS NULL“ und „IS NOT NULL“ erforderlich.

Der folgende Ausdruck verarbeitet beispielsweise Ungleichheitsvergleiche mit NULL korrekt:

WHERE ((A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL))
Nach dem Login kopieren

Durch die Einbindung dieser expliziten Prüfungen kann die Datenbank das korrekte logische Ergebnis (wahr, falsch oder unbekannt) für alle möglichen Fälle mit NULL-Werten ermitteln.

Das obige ist der detaillierte Inhalt vonWarum gibt „NULL != NULL' in SQL nicht immer „True' zurück?. 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