"Operatoren können in SQL nicht mit NULL verglichen werden? " />
NULL-Vergleiche in SQL verstehen
SQL verwendet „!=" und „<>" für Ungleichheitsprüfungen. Allerdings verhalten sich diese Operatoren bei NULL
-Werten.
Das Problem:
Bedenken Sie diese SQL-Abfragen:
<code class="language-sql">SELECT * FROM MyTable WHERE MyColumn != NULL; SELECT * FROM MyTable WHERE MyColumn <> NULL; SELECT * FROM MyTable WHERE MyColumn IS NOT NULL;</code>
Die ersten beiden Abfragen geben leere Ergebnismengen zurück, während die dritte korrekterweise 568 Zeilen zurückgibt. Warum diese Diskrepanz?
Erklärung:
"!=" und "<>" Werte vergleichen. NULL
ist jedoch kein Wert; es bedeutet das Fehlen eines Wertes. Daher sind diese Operatoren für NULL
Vergleiche.
Verwenden Sie stattdessen IS NULL
oder IS NOT NULL
. Diese Prädikate prüfen gezielt, ob ein Wert vorhanden oder nicht vorhanden ist. Der Erfolg der dritten Abfrage beruht auf der korrekten Verwendung von IS NOT NULL
.
Wichtige Punkte:
NULL
Werte zu testen, verwenden Sie IS NOT NULL
.NULL
Werten.NULL
kann nicht als gleich oder ungleich einem Wert angesehen werden, da es sich um fehlende Daten handelt.Das obige ist der detaillierte Inhalt vonWarum können die Operatoren „!=' und „<>' in SQL nicht mit NULL verglichen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!