mysql – 为什么SQL NOT EXISTS返回所有NULL值的1条记录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 为什么SQL NOT EXISTS返回所有NULL值的1条记录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含760字,纯文字阅读大概需要2分钟。
内容图文
![mysql – 为什么SQL NOT EXISTS返回所有NULL值的1条记录](/upload/InfoBanner/zyjiaocheng/894/0c2114b0d19b489da681d6b6a138a85f.jpg)
SQL Fiddle以下:
create table tbl( col1 int, col2 int, col3 int);
insert into tbl values(1,1,1);
insert into tbl values(1,1,1);
select sum(col1) c1, sum(col2) c2, sum(col3)c3
from tbl
where not exists (
select 2 as c1, 2 as c2, 2 as c3
)
我希望这会返回0条记录.相反,它返回1个空值记录.你能告诉我为什么吗?
附:我试图理解不存在的行为.
解决方法:
这不是关于EXISTS.您的NOT EXISTS评估为FALSE,因为SELECT 2 AS c1,2 AS c2,2 AS c3始终返回一行.这意味着您的查询等同于:
SELECT SUM(col1) c1, SUM(col2) c2, SUM(col3) c3 FROM tbl WHERE 0
说,这实际上是关于SUM语义.即使在空集中,SUM也应该返回一个值,在这种情况下,该值为NULL.
SUM(expr)
Returns the sum of expr. If the return set has no rows, SUM() returns NULL.
SUM() returns NULL if there were no matching rows.
内容总结
以上是互联网集市为您收集整理的mysql – 为什么SQL NOT EXISTS返回所有NULL值的1条记录全部内容,希望文章能够帮你解决mysql – 为什么SQL NOT EXISTS返回所有NULL值的1条记录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。