С ANSI_NULLS OFF
, NULL = NULL
оценява на TRUE
.
С ANSI_NULLS ON
(по подразбиране), NULL = NULL
оценява на NULL
.
NULL IS NULL
винаги се оценява на TRUE
.
В MySQL обаче не можете да изключите ANSI_NULLS. Вероятно си мислите за MS SQL Server.
Бъдещите версии на MS SQL Server няма да поддържат ANSI_NULLS OFF
, така че не бих го използвал.
Трябва да оставите ANSI_NULLS ON
и използвайте IS NULL
за да прецените дали нещо Е NULL.
Ако имате проблеми със запомнянето как NULL работи по подразбиране (ANSI_NULLS ON), трябва да мислите за NULL като „неизвестно „. Например, ако в стаята има двама непознати, имената им са НУЛЕВИ. Ако вашата заявка е „Еднакви ли са имената им?“ Вашият отговор Е НУЛВ.
Сега, да кажем, че Боб е в стаята само с един непознат, чието име Е НУЛВО. Отново отговорът на вашето запитване "Едни и същи ли са имената им?" Е NULL. Имайте предвид, че ако сравните нещо с NULL, отговорът ви Е NULL.