SQLs !=
- und <>
-Operatoren und NULL-Werte: Eine Klarstellung
SQLs !=
(ungleich) und <>
-Operatoren zeigen ein einzigartiges Verhalten, wenn sie auf NULL
-Werte stoßen. Um dies zu verstehen, muss man die Essenz von NULL
in SQL verstehen.
NULL
bedeutet das Fehlen eines Werts, nicht einer leeren Zeichenfolge ("") oder Null (0). Es zeigt an, dass einem Feld oder einer Spalte kein Datenwert zugewiesen wurde.
Normalerweise geben !=
und <>
true
zurück, wenn sich die Werte unterscheiden. Dies gilt jedoch nicht für NULL
.
Bedenken Sie Folgendes:
<code class="language-sql">SELECT * FROM MyTable WHERE MyColumn != NULL; -- (0 Results)</code>
Diese Abfrage liefert keine Ergebnisse, auch wenn MyColumn
Nicht-NULL
-Einträge enthält. Der Grund? !=
und <>
können nicht auf NULL
angewendet werden. Sie benötigen einen konkreten Vergleichswert.
Umgekehrt:
<code class="language-sql">SELECT * FROM MyTable WHERE MyColumn IS NOT NULL; -- (568 Results)</code>
Diese Abfrage gibt korrekt alle Zeilen zurück, in denen MyColumn
nicht NULL
ist. IS NOT NULL
wurde speziell entwickelt, um das Fehlen eines Werts (NULL
) zu überprüfen.
Zusammenfassend: NULL
ist ein eindeutiger Wert in SQL. Die Verwendung von !=
oder <>
zum Vergleich mit NULL
führt immer zu false
. Um das Fehlen eines Werts genau zu testen, verwenden Sie den Operator IS NOT NULL
.
Das obige ist der detaillierte Inhalt vonWie verhalten sich die Operatoren „!=' und „' mit NULL-Werten in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!