Hàm IN() trả về NULL trong hai trường hợp:
Trường hợp 1: Biểu thức bên trái là NULL
mysql> SELECT NULL IN (1,2,3,4,10); +----------------------+ | NULL IN (1,2,3,4,10) | +----------------------+ | NULL | +----------------------+
Trường hợp 2: Có NULL trong danh sách và không tìm thấy khớp
mysql> SELECT 10 IN (NULL,11,12); +--------------------+ | 10 IN (NULL,11,12) | +--------------------+ | NULL | +--------------------+ mysql> SELECT 10 IN (NULL,11,12,10); +-----------------------+ | 10 IN (NULL,11,12,10) | +-----------------------+ | 1 | +-----------------------+
Nếu tìm thấy khớp dù có NULL trong danh sách, trả về 1. Chỉ trả về NULL khi KHÔNG khớp VÀ có NULL trong danh sách.