ANSI_NULLS OFF
を使用 、NULL = NULL
TRUE
に評価されます 。
ANSI_NULLS ON
を使用 (デフォルト)、NULL = NULL
NULL
に評価されます 。
NULL IS NULL
常にTRUE
に評価されます 。
ただし、MySQLでは、ANSI_NULLSをオフにすることはできません。おそらくMSSQLServerについて考えているでしょう。
MS SQL Serverの将来のバージョンは、ANSI_NULLS OFF
をサポートしません。 、だから私はそれを使いません。
ANSI_NULLS ON
のままにしておく必要があります IS NULL
を使用します 何かがNULLかどうかを評価します。
NULLがデフォルトでどのように機能するか(ANSI_NULLS ON)を思い出せない場合は、NULLを「不明」と考える必要があります。 "。たとえば、部屋に2人の見知らぬ人がいる場合、彼らの名前はNULLです。クエリが「彼らの名前は同じですか?」の場合、あなたの答えはNULLです。
ここで、ボブが名前がNULLの見知らぬ人が1人だけいる部屋にいるとしましょう。繰り返しますが、「名前は同じですか?」という質問に対する答えです。無効である。何かをNULLと比較すると、答えはNULLであることに注意してください。