Heim > Datenbank > MySQL-Tutorial > Warum kann != in SQL nicht mit NULL verglichen werden und was sollte ich stattdessen verwenden?

Warum kann != in SQL nicht mit NULL verglichen werden und was sollte ich stattdessen verwenden?

Barbara Streisand
Freigeben: 2025-01-21 14:38:09
Original
476 Leute haben es durchsucht

Why Does != Fail to Compare Against NULL in SQL, and What Should I Use Instead?

SQLs !=-Operator und NULL: Ein häufiges Missverständnis

In SQL führt die Verwendung von != (oder <>) zur Prüfung auf NULL-Werte zu unerwarteten Ergebnissen. Im Gegensatz zu IS NOT NULL, das Nicht-NULL-Werte korrekt identifiziert, geben != und <> beim Vergleich mit NULL keine Übereinstimmungen zurück. Dieses Verhalten ergibt sich aus der grundlegenden Natur von NULL in SQL.

NULL stellt das Fehlen eines Werts dar, nicht eines bestimmten Werts selbst. Daher können Standardvergleichsoperatoren wie != und <> keine Gleichheit oder Ungleichheit mit NULL bestimmen, da es keinen definierten Wert zum Vergleich gibt.

SQL verwendet die Prädikate IS NULL und IS NOT NULL, um Vergleiche mit NULL durchzuführen. Diese Prädikate bewerten die Existenz oder Nichtexistenz eines Wertes, nicht seine Gleichheit mit einem anderen Wert.

Dies gilt für alle wichtigen SQL-Datenbanken, nicht nur für SQL Server. Dies ist eine direkte Folge der Definition von NULL als Abwesenheit eines Werts.

Wichtige Punkte, die Sie beachten sollten:

  • Verwenden Sie IS NOT NULL, um zu prüfen, ob ein Wert nicht NULL ist.
  • Verwenden Sie = 'YOUR_VALUE', um einen Wert mit einem bestimmten Wert ungleich NULL zu vergleichen.
  • Direkte Gleichheits- oder Ungleichheitsprüfungen (=, !=, <>) mit NULL sind undefiniert und liefern nicht die erwarteten Ergebnisse. Verwenden Sie stattdessen IS NULL oder IS NOT NULL.

Das obige ist der detaillierte Inhalt vonWarum kann != in SQL nicht mit NULL verglichen werden und was sollte ich stattdessen verwenden?. 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