Fordi enhver sammenligningsoperator over NULL
vises i et sql-filter bør (og gør) gøre rækken ikke markeret.
Du skal bruge null safe operator <=>
at sammenligne med kolonne, der indeholder NULL
værdier og andre IKKE NULL
værdi, men <=> returnerer
1
når begge operander er NULL
fordi NULL
betragtes aldrig som lig med NULL
.
Dette er et eksempel på en situation, hvor null safe-operatør er nyttig:
Du har et bord:
Phones
----
Number
CountryCode (can be NULL)
Og du vil vælge alle telefonnumre, der ikke er fra Spanien (landekode 34). Det første forsøg er normalt:
SELECT Number FROM Phones WHERE CountryCode <> 34;
Men du bemærker, at der er telefoner uden landekode (NULL-værdi), som ikke er angivet, og du vil inkludere dem i dit resultat, fordi de heller ikke er fra Spanien:
SELECT Number FROM Phones WHERE CountryCode <=> 34;