Omdat elke vergelijkingsoperator boven NULL
verschijnen in in een sql-filter zou (en zal) de rij niet moeten selecteren.
U moet de null-safe-operator <=>
. gebruiken om te vergelijken met kolom met NULL
waarden en andere NOT NULL
waarde maar <=>
retourneert 1
wanneer beide operanden NULL
zijn omdat NULL
wordt nooit beschouwd als gelijk aan NULL
.
Dit is een voorbeeld van een situatie waarin een nulveilige operator nuttig is:
Je hebt een tafel:
Phones
----
Number
CountryCode (can be NULL)
En u wilt alle telefoonnummers selecteren die niet uit Spanje komen (landcode 34). De eerste poging is meestal:
SELECT Number FROM Phones WHERE CountryCode <> 34;
Maar je merkt dat er telefoons zijn zonder landcode (NULL-waarde) die niet worden vermeld en je wilt ze in je resultaat opnemen omdat ze niet uit Spanje komen:
SELECT Number FROM Phones WHERE CountryCode <=> 34;