Med ANSI_NULLS OFF
, NULL = NULL
utvärderas till TRUE
.
Med ANSI_NULLS ON
(standard), NULL = NULL
utvärderas till NULL
.
NULL IS NULL
utvärderas alltid till TRUE
.
Men i MySQL kan du inte stänga av ANSI_NULLS. Du tänker förmodligen på MS SQL Server.
Framtida versioner av MS SQL Server kommer inte att stödja ANSI_NULLS OFF
, så jag skulle inte använda det.
Du bör lämna ANSI_NULLS ON
och använd IS NULL
för att utvärdera om något ÄR NULL.
Om du har problem med att komma ihåg hur NULL fungerar som standard (ANSI_NULLS ON), bör du tänka på NULL som "okänt ". Till exempel, om det finns två främlingar i rummet, är deras namn NULL. Om din fråga är "Är deras namn samma?" Ditt svar ÄR NULL.
Låt oss nu säga att Bob är i rummet med bara en främling, vars namn ÄR NULL. Återigen svaret på din fråga "Är deras namn samma?" ÄR INGET. Observera att om du jämför något med NULL så ÄR ditt svar NULL.