Qualsiasi confronto con NULL restituisce NULL . Per ovviare a questo, ci sono tre operatori che puoi usare:
x IS NULL- determina se l'espressione della mano sinistra èNULL,x IS NOT NULL- come sopra, ma il contrario,x <=> y- confronta entrambi gli operandi per l'uguaglianza in modo sicuro, cioèNULLè visto come un valore normale.
Per il tuo codice, potresti prendere in considerazione l'utilizzo della terza opzione e il confronto sicuro nullo:
SELECT * FROM mycompare
WHERE NOT(name <=> fname OR name <=> mname OR name <=> lname)