Denn jeder Vergleichsoperator über NULL
Das Erscheinen in einem SQL-Filter sollte (und tut) dazu führen, dass die Zeile nicht ausgewählt wird.
Sie sollten den sicheren Nulloperator <=>
verwenden zum Vergleich mit einer Spalte, die NULL
enthält Werte und andere NOT NULL
Wert, sondern <=>
gibt 1
zurück wenn beide Operanden NULL
sind weil NULL
wird nie gleich NULL
betrachtet .
Dies ist ein Beispiel für eine Situation, in der der Null-Safe-Operator nützlich ist:
Sie haben eine Tabelle:
Phones
----
Number
CountryCode (can be NULL)
Und Sie möchten alle Telefonnummern auswählen, die nicht aus Spanien stammen (Ländercode 34). Der erste Versuch ist normalerweise:
SELECT Number FROM Phones WHERE CountryCode <> 34;
Aber Sie stellen fest, dass Telefone ohne Landesvorwahl (NULL-Wert) nicht aufgeführt sind, und Sie möchten diese in Ihr Ergebnis einbeziehen, da sie nicht aus Spanien stammen:
SELECT Number FROM Phones WHERE CountryCode <=> 34;