mysql union all 的 bug

在mysql中,可以执行不严格的group by 语句,可以得到看似正常的结果。

select  c1,c2,c3,sum(c4) from table1 ;

此时,若再对多个结果进行 union all ,mysql会直接丢弃部分结果集,导致非常诡异的问题出现。

select c1,c2,c3,sum(c4) from table1 

group by c1,c2,c3 

union all

select c1,c2,c3,sum(c4) from table2 

此时table2的结果集就会被丢弃,但实际上table2中是包含符合业务含义的数据的。

所以,编写sql一定要严格的按照sql语法来。

相关推荐