您好我在使用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