Heim >Datenbank >MySQL-Tutorial >SQL-NULL-Vergleiche: Warum „x IS NULL' anstelle von „x = NULL' verwenden?
SQL: Den Unterschied zwischen „x ist null“ und „x = null“ verstehen
SQL bietet zwei verschiedene Möglichkeiten, eine Spalte auf NULL-Werte zu testen: „x ist null“ und „x = null“. Obwohl diese beiden Ausdrücke ähnlich aussehen, unterscheidet sich ihr Verhalten erheblich.
'x = null' vs. 'x ist null': Hauptunterschiede
Der Ausdruck „x = null“ ist eine Vergleichsoperation, die prüft, ob der Wert von „x“ gleich dem literalen NULL-Wert ist. Allerdings wird in SQL jeder Vergleich mit NULL-Werten, einschließlich „x = null“, immer „null“ zurückgeben. Dies liegt daran, dass NULL-Werte in SQL unbekannte Werte darstellen und daher nicht festgestellt werden kann, ob sie einem anderen Wert entsprechen.
Im Gegensatz dazu ist „x ist null“ ein Ausdruck, der speziell das Vorhandensein eines NULL-Werts prüft. Gibt „true“ zurück, wenn „x“ NULL ist; andernfalls wird „false“ zurückgegeben. Dies ermöglicht ein genaues Testen von NULL-Werten ohne die Mehrdeutigkeit, die mit „x = null“ verbunden ist.
Warum 'x = null' nicht funktioniert
Wie bereits erwähnt, gibt „x = null“ in SQL immer „null“ zurück. Dies bedeutet, dass bei Verwendung in einer WHERE-Klausel keine übereinstimmenden Zeilen erzeugt werden, da „null“ in diesem Fall als falsch betrachtet wird.
Beispiel
Betrachten Sie das folgende Formular:
X | Y |
---|---|
1 | null |
null | 1 |
Wenn Sie die Abfrage „SELECT * FROM t WHERE x = null“ ausführen, erhalten Sie keine Zeilen, selbst wenn es Zeilen gibt, in denen „x“ „null“ ist. Dies liegt daran, dass „x = null“ immer zu „null“ ausgewertet wird, was in der WHERE-Klausel falsch ist.
Verwenden Sie „x ist null“ für genaue NULL-Wert-Tests
Um korrekt auf NULL-Werte zu testen, verwenden Sie „x ist null“ anstelle von „x = null“. Hier ist ein Beispiel, das die erforderlichen Zeilen zurückgibt:
<code class="language-sql">SELECT * FROM t WHERE x is null</code>
Diese Abfrage gibt Folgendes zurück:
X | Y |
---|---|
null | 1 |
Fazit
Das Verständnis des Unterschieds zwischen „x ist null“ und „x = null“ ist für eine effektive SQL-Programmierung von entscheidender Bedeutung. „x = null“ vergleicht „x“ mit einem literalen NULL-Wert und gibt immer „null“ zurück, während „x is null“ speziell auf das Vorhandensein eines NULL-Werts prüft. Verwenden Sie beim Testen von NULL-Werten immer „x ist null“, um genaue Ergebnisse zu erhalten.
Das obige ist der detaillierte Inhalt vonSQL-NULL-Vergleiche: Warum „x IS NULL' anstelle von „x = NULL' verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!