Với ANSI_NULLS OFF
, NULL = NULL
đánh giá thành TRUE
.
Với ANSI_NULLS ON
(mặc định), NULL = NULL
đánh giá thành NULL
.
NULL IS NULL
luôn đánh giá là TRUE
.
Tuy nhiên, trong MySQL, bạn không thể tắt ANSI_NULLS. Có thể bạn đang nghĩ đến MS SQL Server.
Các phiên bản tương lai của MS SQL Server sẽ không hỗ trợ ANSI_NULLS OFF
, vì vậy tôi sẽ không sử dụng nó.
Bạn nên để ANSI_NULLS ON
và sử dụng IS NULL
để đánh giá xem điều gì đó LÀ KHÔNG ĐẦY ĐỦ.
Nếu bạn đang gặp sự cố khi nhớ cách NULL hoạt động theo mặc định (ANSI_NULLS ON), bạn nên nghĩ về NULL là " không xác định ". Ví dụ:nếu có hai người lạ trong phòng, tên của họ là NULL. Nếu truy vấn của bạn là" Tên của họ có giống nhau không? "Câu trả lời của bạn LÀ KHÔNG.
Bây giờ, giả sử Bob đang ở trong phòng chỉ với một người lạ, tên LÀ KHÔNG. Một lần nữa câu trả lời cho truy vấn của bạn "Tên của họ có giống nhau không?" LÀ KHÔNG. Lưu ý rằng nếu bạn so sánh bất kỳ điều gì với NULL, câu trả lời của bạn LÀ KHÔNG.