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;