Com
ANSI_NULLS OFF
, NULL = NULL
avalia como TRUE
. Com
ANSI_NULLS ON
(o padrão), NULL = NULL
avalia como NULL
. NULL IS NULL
sempre avalia como TRUE
. No entanto, no MySQL, você não pode desativar ANSI_NULLS. Você provavelmente está pensando no MS SQL Server.
Versões futuras do MS SQL Server não suportarão
ANSI_NULLS OFF
, então eu não usaria. Você deve deixar
ANSI_NULLS ON
e use IS NULL
para avaliar se algo É NULL. Se você está tendo problemas para lembrar como NULL funciona por padrão (ANSI_NULLS ON), você deve pensar em NULL como "unknown ". Por exemplo, se houver dois estranhos na sala, seus nomes serão NULL. Se sua pergunta for:"Seus nomes são iguais?"
Agora, digamos que Bob esteja na sala com apenas um estranho, cujo nome é NULL. Novamente, a resposta à sua pergunta "Os nomes deles são os mesmos?" É NULO. Observe que, se você comparar qualquer coisa com NULL, sua resposta será NULL.