mysql中的错误结果
当我使用语句时mysql中的错误结果,mysql,sql,Mysql,Sql,当我使用语句时 select Name, Id from employee where Id in (1234,1234,NULL); 我得到了正确的结果。但是,当我编写查询时 select Name, Id from employee where Id not in (1234,5678,NULL); 我只是得到了“空集”作为结果。请告诉我为什么会这样。我正在使用MYSQL。因为与null比较会导致未知。必须将IS运算符与null select Name, Id from employe
select Name, Id
from employee
where Id in (1234,1234,NULL);
我得到了正确的结果。但是,当我编写查询时
select Name, Id
from employee
where Id not in (1234,5678,NULL);
我只是得到了“空集”作为结果。请告诉我为什么会这样。我正在使用MYSQL。因为与
null
比较会导致未知。必须将IS
运算符与null
select Name, Id
from employee
where Id not in (1234,3456)
and Id is not null
正如其他人所说,将任何内容与
NULL
进行比较,计算结果为UNKNOWN
(除了TRUE
和FALSE
之外的第三种逻辑状态)。要展开两个表达式:
Id-in(12341234,NULL)
=>Id=1234或Id=1234或Id=NULL
=>Id=1234或Id=1234或未知
TRUE或
的计算结果为TRUE
,因此如果Id=1234
返回
TRUE
,整个表达式为TRUE
Id不在(12345678,NULL)
=>Id!=1234和Id!=5678和Id!=NULL
=>Id!=1234和Id!=5678和未知
和UNKNOWN
计算结果为UNKNOWN
,因此对于没有行,条件将计算为TRUE
,因此没有返回行