Problemet är att a !=b är NULL när antingen a eller b är NULL.
<=>
är NULL-safe equals-operatorn. För att få en NULL-safe som inte är lika med kan du helt enkelt invertera resultatet:
SELECT *
FROM my_table
WHERE NOT column_a <=> column_b
Utan att använda nollsafe-operatören skulle du behöva göra detta:
SELECT *
FROM my_table
WHERE column_a != column_b
OR (column_a IS NULL AND column_b IS NOT NULL)
OR (column_b IS NULL AND column_a IS NOT NULL)