结果集不一致

【 TiDB 使用环境】生产环境
【 TiDB 版本】 6.5.1
【复现路径】
图一:

图二


这两个图结果集不一致,与想像的不符,我在mysql8 的环境上验证结果 是一致的,是版本bug吗

按照原则 ,在where里多了条件,结果集应该更小吧

https://github.com/pingcap/tidb/issues?q=is%3Aissue+ifnull+is%3Aclosed+label%3Aaffects-6.5

ifnull函数看起来是个bug大户。加了affects-6.5都能找到不少。

希望你的这个问题,是下面这个bug:
https://github.com/pingcap/tidb/issues/41734

这个bug看合并的记录应该是在6.5.3得到了修复。
你可以尝试升级到6.5.3再试试。如果还不行。这个ifnull加了affects-6.5还有3个open issue没有修复。 :joy:
只能等等了。

1 个赞

不加ifnull 结果也有问题

仍然有ifnull,第18行。 :joy:

都改了,还是不行

试试with的方式

不支持吧

能整个最小复现吗,我看下其他版本的有没有这问题

为啥非要用nullif ‘’ 处理null ,直接写is not null 和 is null来判断是否为空不就行了

嗯,产线写的SQL

应该是Leftjoin的问题

不用ifnull 结果好像也不对

这么写太水了。。

主要是想了解SQL的结果集为什么不对

个人以为是sql写法问题 主从表的筛选条乱写 主表的条件写在where后面 从表直接在join on时写

上面的几类SQL,在mysql 都只能出一条数据