С 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.