something <> NULL
sẽ đánh giá thành NULL
. Và nếu được sử dụng trong một truy vấn khá giống với 0
(hoặc false
).
Hãy nhớ rằng SQL sử dụng logic ba giá trị và không phải logic nhị phân đơn giản.
Bạn có thể cần kiểm tra NULL một cách rõ ràng bằng cách sử dụng IS NULL
:
... OR THING IS NULL
Ngoài ra, bạn có thể sử dụng NULL-safe bằng toán tử <=>
có phủ định (tuy nhiên, đây là trường hợp cụ thể của MySQL, nó không phải là SQL chuẩn
):
... AND NOT (THING <=> 'This')