MYSQL 1 of SELECT list is not in GROUP BY clause and contains 问题的解决办法

最近一个系统部署到另一台服务器的时候报错1 of SELECT list is not in GROUP BY clause and contains,查一下,是mysql5.7默认配置的问题。


聚合查询出现这样的报错是因为mysql设定的mode含有 ONLY_FULL_GROUP_BY

图片.png


图片.png

修改这个

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENG


only_full_group_by :使用这个就是使用和oracle一样的group 规则, select的列都要在group中,或者本身是聚合列(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好,删除“only_full_group_by,”


图片.png

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。