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

Warum gibt „NULL != NULL' in SQL FALSE zurück?

Linda Hamilton
Freigeben: 2024-12-31 20:34:10
Original
337 Leute haben es durchsucht

Why Does `NULL != NULL` Return FALSE in SQL?

Warum die NULL-Ungleichung falsch ist

Die Anwendung der ternären Logik von SQL spielt eine entscheidende Rolle beim Verständnis, warum NULL nicht gleich NULL ist. In der ternären Logik stellt NULL einen unbekannten Wert und keinen bestimmten Wert dar. Dieses Konzept leitet die Bewertung von Gleichheits- und Ungleichheitstests.

Bei der Bewertung der Gleichheit werden zwei NULL-Werte weder als gleich noch als ungleich betrachtet. Dies liegt daran, dass der Zustand des Unbekanntseins nicht definitiv mit einem anderen unbekannten Zustand verglichen werden kann. Somit gibt der Ausdruck (NULL = NULL) NULL zurück, was das Fehlen einer eindeutigen Antwort anzeigt.

Bei Ungleichheitstests gibt (NULL != NULL) auch FALSE zurück. Dies liegt daran, dass die ternäre Logik vorschreibt, dass ein unbekannter Wert nicht definitiv als ungleich zu einem anderen unbekannten Wert angegeben werden kann. Daher bleibt unbekannt, ob sie gleich sind oder nicht.

Auswirkungen auf Ungleichheitsprüfungen

Die obige Diskussion verdeutlicht, dass der Ausdruck (A != B) ausreichend ist für Testen der Ungleichheit, auch wenn entweder A oder B NULL ist. Dies liegt daran, dass die Regeln der ternären Logik vorschreiben, dass jede Operation mit einem NULL-Wert unbekannt bleibt. Daher gibt der Ausdruck (A != B) FALSE zurück, wenn sowohl A als auch B NULL sind, was auf das Fehlen einer endgültigen Antwort hinweist.

Wenn Sie explizit ein TRUE-Ergebnis benötigen, wenn sowohl A als auch B NULL sind, dann ist dies der Fall kann den ausführlicheren Ausdruck verwenden:

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

Es ist jedoch wichtig zu beachten, dass diese Bedingung für einen bestimmten Anwendungsfall gilt, bei dem ein TRUE-Ergebnis für NULL-Werte gewünscht wird. In den meisten Fällen reicht der einfachere Ausdruck (A != B) aus, da er den Prinzipien der ternären Logik folgt.

Das obige ist der detaillierte Inhalt vonWarum gibt „NULL != NULL' in SQL FALSE 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