Mysql ONLY_FULL_GROUP_BY默认配置引发的问题

解决mysql-5.7以上版本的默认配置ONLY_FULL_GROUP_BY引起的错误

问题:ONLY_FULL_GROUP_BY:

对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个SQL是不合法的,因为列不在GROUP BY从句中

因为有only_full_group_by,所以我们要在MySQL中正确的使用group by语句的话,只能是select column1 from tb1 group by column1(即只能展示group by的字段,其他均都要报1055的错)

解决方案:
1.linux查看my.cnf位置
mysql --help|grep my.cnf
2.修改my.cnf 在my.cnf(my.ini)添加如下配置(#sql_mode=你想要的模式’,注意配置放到 [mysqld] 这一类别下)添加配置:
[mysqld]
sql_mode =STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
3.重启mysql服务
service mysqld restart

猜你喜欢

转载自blog.csdn.net/LSY929981117/article/details/86575737
今日推荐