MySQL中的not in和null
当我们在MySQL中使用not in时,例如
select id
from user
when id not in(...)
如果not in(…)数据中有null时,返回的结果是空表。
错误在于判断 a not in B的方法的本质是a 使用 != 与B中的每一条进行判断
比如 3 not in (null,1,2)
,如果我们以3在不在null,1,2中来理解的话,肯定会认为返回结果是true;
但实践过程是3 != null && 3 != 1 && 3 != 2
3 != null
返回的结果是null
3 != 1
返回的结果是true
3 != 2
返回的结果是true
只有所有结果都返回ture的时候 3 not in (null,1,2)
才会返回ture,然而在进行3 != null
判断时,返回的结果是null不是ture,所以这个not in语句的返回值是False
使用in判断的时候就不会出现这样的问题, 比如1 in null, 1, 2
所有的记录只要返回一条True, in语句返回的就是True, 所有即使1 = null
返回值是null也不会有什么影响
并且在MySQL中, null代表的就是缺失未知值而不是空值, null与任何值用<>=等运算符判断时候返回的都是null文章来源:https://www.toymoban.com/news/detail-461543.html
所以在使用not in 时需要注意数据中是否有null,并且null的判断使用的是is null, 或者is not null, 使用=是不行的文章来源地址https://www.toymoban.com/news/detail-461543.html
到了这里,关于Mysql中的not in和null的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!