您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

mysql 对于有null值的 NOT IN和NOT EXISTS

bubuko 2022/1/25 19:59:08 mysql 字数 1384 阅读 638 来源 http://www.bubuko.com/infolist-5-1.html

SELECT * FROM boys WHERE boys.id NOT IN (SELECT DISTINCT boyfriend_id FROM beauty) 上段sql语句中 beauty表是存在boyfriend_id为null值的情况的 查询结果如下 而使用Exists SELECT * ...
  SELECT * FROM boys WHERE boys.id  NOT IN (SELECT DISTINCT boyfriend_id FROM beauty)

上段sql语句中 beauty表是存在boyfriend_id为null值的情况的 查询结果如下

技术分享图片

 

 

   而使用Exists

  SELECT * FROM boys WHERE NOT EXISTS (SELECT DISTINCT boyfriend_id FROM beauty WHERE boys.`id`=beauty.`boyfriend_id` )

技术分享图片

 

 可以正常查询出没有女朋友的boy表id的

 

原因很简单:由于NULL不能进行如何的“操作”

–如果null参与算术运算,则该算术表达式的值为null。(例如:+,-,*,/ 加减乘除)

–如果null参与比较运算,则结果可视为false。(例如:>=,<=,<>  大于,小于,不等于)

–如果null参与聚集运算,则聚集函数都置为null(使用isnull(字段,0)等方式可以避免这种情况)。除count(*), count(1), count(0)等之外(count(字段) 字段为null的行不参与计数)。

--如果在not in子查询中有null值的时候,则不会返回数据。 

 

mysql 对于有null值的 NOT IN和NOT EXISTS

原文:https://www.cnblogs.com/hurui1/p/12664065.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶