mysql升级到5.7后group by报错分析

看一下ONLY_FULL_GROUP_BY的意思是:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中,也就是说查出来的列必须在group by后面出现否则就会报错,除非这个字段出现在聚合函数里面。
例如:
select a,b,c from table where 1=1 group by a,b,c(正确)

select a,b,max(c) from table where 1=1 group by a,b(正确)
解决办法1:更改sql规范
解决办法2:

1、查看命令:select @@GLOBAL.sql_mode;
2、找到my.cnf配置文件,没有就新建。
添加以下内容:
 sql_mode='NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'  
 3、重启mysql服务即可。

猜你喜欢

转载自blog.csdn.net/lwl20140904/article/details/81185176