Ponieważ każdy operator porównania nad NULL
pojawienie się w filtrze sql powinno (i robi) sprawić, że wiersz nie zostanie zaznaczony.
Powinieneś użyć bezpiecznego operatora o wartości null <=>
do porównania z kolumną zawierającą NULL
wartości i inne NOT NULL
wartość ale <=>
zwróci 1
gdy oba operandy są NULL
ponieważ NULL
nigdy nie jest uważany za równy NULL
.
To jest przykład sytuacji, w której operator null safe jest przydatny:
Masz stolik:
Phones
----
Number
CountryCode (can be NULL)
I chcesz wybrać wszystkie numery telefonów, które nie pochodzą z Hiszpanii (kod kraju 34). Pierwsza próba to zwykle:
SELECT Number FROM Phones WHERE CountryCode <> 34;
Zauważasz jednak, że na liście nie ma telefonów bez kodu kraju (wartość NULL) i chcesz je uwzględnić w wyniku, ponieważ nie pochodzą one z Hiszpanii:
SELECT Number FROM Phones WHERE CountryCode <=> 34;