您好我在使用IN語句一個小問題。我舉了一個例子來演示。MySQL的:使用IN子句
這裏有一個名爲Person表,其中縮寫是主鍵:
initials firstName surname age
--------------------------------------------------
BT Bill Thomson 15
JS Jack Smith 10
KM Katie Miller 2
KW Keiran Williams 18
LB Lauren Bell 6
LS Lucy Stevens 7
所以,如果我有這樣的查詢: SELECT * FROM WHERE人的firstName NOT IN( '法案'); 我按預期得到沒有Bill的所有行。
但是,如果我寫的:
SELECT * FROM Person WHERE firstName NOT IN(NULL);
OR
SELECT * FROM Person WHERE firstName IN (NULL);
它告訴我沒什麼,只是一個空集。有人可以向我解釋爲什麼? 因爲我有一個表,我需要做這樣的事情,它有NULL值,這是我的問題的一部分。
與'NULL'的任何比較 - 'IS NULL'除外 - 返回false或NULL(將其視爲false) 。這適用於'in'和'not in'以及其他比較操作。 –
我有點理解你在說什麼...但是如果我們拿firstName,它有{Bill},如果我們將它與{NULL}進行比較,使用{Bill} IN {NULL},那麼我明白爲什麼這是錯誤的。 我不明白爲什麼{Bill}不在{NULL}是錯誤的? – tenkii