Perché qualsiasi operatore di confronto su NULL apparire in un filtro sql dovrebbe (e lo fa) rendere la riga non selezionata.
Dovresti usare l'operatore null safe <=> da confrontare con la colonna contenente NULL valori e altro NOT NULL valore ma <=> restituirà 1 quando entrambi gli operandi sono NULL perché NULL non è mai considerato uguale a NULL .
Questo è un esempio di una situazione in cui l'operatore null safe è utile:
Hai un tavolo:
Phones
----
Number
CountryCode (can be NULL)
E vuoi selezionare tutti i numeri di telefono che non provengono dalla Spagna (prefisso internazionale 34). Il primo tentativo è solitamente:
SELECT Number FROM Phones WHERE CountryCode <> 34;
Ma noti che ci sono telefoni senza prefisso internazionale (valore NULL) non elencati e vuoi includerli nel tuo risultato perché non provengono dalla Spagna:
SELECT Number FROM Phones WHERE CountryCode <=> 34;