Você pediu alguns exemplos do mundo real. Aqui está uma espúria. Digamos que você tenha um programa residencial para jovens ou similar, e um dos requisitos é que as crianças só compartilhem o quarto com alguém do mesmo sexo. Você tem um campo M/F anulável em seu banco de dados - anulável porque seu feed de dados está incompleto (você ainda está procurando alguns dados). Seu código de correspondência de sala definitivamente não deve corresponder aos alunos em que t1.Gender<=>t2 .Gender, porque pode acabar combinando duas crianças de gênero desconhecido, que podem ser de gêneros opostos. Em vez disso, você corresponde onde eles são iguais e não ambos nulos.
Isso é apenas um exemplo. Admito que o comportamento de
NULL
e o =
tem causado muita confusão ao longo dos anos, mas no final das contas a falha provavelmente está na infinidade de tutoriais online do MySQL que não mencionam como NULL
interage com operadores, nem da existência do <=>
operador.