Z ANSI_NULLS OFF
, NULL = NULL
ocenia do TRUE
.
Z ANSI_NULLS ON
(domyślnie), NULL = NULL
ocenia do NULL
.
NULL IS NULL
zawsze zwraca się do TRUE
.
Jednak w MySQL nie można wyłączyć ANSI_NULLS. Prawdopodobnie myślisz o MS SQL Server.
Przyszłe wersje MS SQL Server nie będą obsługiwać ANSI_NULLS OFF
, więc nie użyłbym go.
Powinieneś pozostawić ANSI_NULLS ON
i użyj IS NULL
aby ocenić, czy coś JEST NULL.
Jeśli masz problemy z zapamiętaniem, jak NULL działa domyślnie (ANSI_NULLS ON), powinieneś pomyśleć o NULL jako „nieznane Na przykład, jeśli w pokoju jest dwóch nieznajomych, ich imiona to NULL. Jeśli twoje pytanie brzmi:„Czy ich imiona są takie same?” Twoja odpowiedź to NULL.
Załóżmy teraz, że Bob jest w pokoju z tylko jednym nieznajomym, którego imię JEST NULL. Znowu odpowiedź na twoje pytanie „Czy ich imiona są takie same?” JEST NULL. Zauważ, że jeśli porównasz cokolwiek do NULL, twoja odpowiedź to NULL.