Masalahnya adalah bahwa a !=b adalah NULL ketika a atau b adalah NULL.
<=>
adalah NULL-aman sama dengan operator. Untuk mendapatkan NULL-safe yang tidak sama dengan Anda cukup membalikkan hasilnya:
SELECT *
FROM my_table
WHERE NOT column_a <=> column_b
Tanpa menggunakan operator aman nol, Anda harus melakukan ini:
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)