Eftersom vilken jämförelseoperator som helst över NULL
visas i ett sql-filter bör (och gör det) göra att raden inte väljs.
Du bör använda null safe operator <=>
för att jämföra med kolumn som innehåller NULL
värden och andra NOT NULL
värde men <=>
returnerar 1
när båda operanderna är NULL
eftersom NULL
anses aldrig vara lika med NULL
.
Detta är ett exempel på en situation där null safe-operatör är användbar:
Du har ett bord:
Phones
----
Number
CountryCode (can be NULL)
Och du vill välja alla telefonnummer som inte kommer från Spanien (landskod 34). Första försöket är vanligtvis:
SELECT Number FROM Phones WHERE CountryCode <> 34;
Men du märker att det finns telefoner utan landskod (NULL-värde) som inte finns med och du vill inkludera dem i ditt resultat eftersom de inte är från Spanien:
SELECT Number FROM Phones WHERE CountryCode <=> 34;