Mit ANSI_NULLS OFF
, NULL = NULL
ergibt TRUE
.
Mit ANSI_NULLS ON
(Standardeinstellung), NULL = NULL
wird zu NULL
ausgewertet .
NULL IS NULL
wird immer zu TRUE
ausgewertet .
In MySQL können Sie ANSI_NULLS jedoch nicht deaktivieren. Sie denken wahrscheinlich an MS SQL Server.
Zukünftige Versionen von MS SQL Server werden ANSI_NULLS OFF
nicht mehr unterstützen , also würde ich es nicht verwenden.
Sie sollten ANSI_NULLS ON
lassen und verwenden Sie IS NULL
um auszuwerten, ob etwas NULL ist.
Wenn Sie Probleme haben, sich daran zu erinnern, wie NULL standardmäßig funktioniert (ANSI_NULLS ON), sollten Sie sich NULL als „unbekannt vorstellen ". Wenn beispielsweise zwei Fremde im Raum sind, sind ihre Namen NULL. Wenn Ihre Frage lautet:"Sind ihre Namen gleich?", lautet Ihre Antwort NULL.
Nehmen wir nun an, Bob ist mit nur einem Fremden im Raum, dessen Name NULL ist. Nochmals die Antwort auf Ihre Frage "Sind ihre Namen gleich?" IST NULL. Beachten Sie, dass Ihre Antwort NULL ist, wenn Sie irgendetwas mit NULL vergleichen.