Heim > Datenbank > MySQL-Tutorial > Warum können die Operatoren „!=' und „<>' in SQL nicht mit NULL verglichen werden?

Warum können die Operatoren „!=' und „<>' in SQL nicht mit NULL verglichen werden?

DDD
Freigeben: 2025-01-21 14:57:14
Original
786 Leute haben es durchsucht

Why Do "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.

unerwartet

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>
Nach dem Login kopieren

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 NULLVergleiche.

ungeeignet

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:

  • Um auf Nicht-NULL Werte zu testen, verwenden Sie IS NOT NULL.
  • Verwenden Sie „<>“ oder „!=" zum Vergleich mit bestimmten Nicht-NULLWerten.
  • 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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage