Med ANSI_NULLS OFF
, NULL = NULL
evalueres til TRUE
.
Med ANSI_NULLS ON
(standarden), NULL = NULL
evalueres til NULL
.
NULL IS NULL
evalueres altid til TRUE
.
I MySQL kan du dog ikke slå ANSI_NULLS fra. Du tænker sikkert på MS SQL Server.
Fremtidige versioner af MS SQL Server understøtter ikke ANSI_NULLS OFF
, så jeg ville ikke bruge det.
Du bør lade ANSI_NULLS ON
og brug IS NULL
for at vurdere, om noget ER NULL.
Hvis du har problemer med at huske, hvordan NULL fungerer som standard (ANSI_NULLS ON), bør du tænke på NULL som "ukendt ". For eksempel, hvis der er to fremmede i rummet, er deres navne NULL. Hvis din forespørgsel er:"Er deres navne de samme?" Dit svar ER NULL.
Lad os nu sige, at Bob er i rummet med kun én fremmed, hvis navn ER NULL. Igen svaret på din forespørgsel "Er deres navne de samme?" ER NULL. Bemærk, at hvis du sammenligner noget med NULL, ER dit svar NULL.