MySQL命令group by报错

问题如下

报错

原因

MySQL5.7以上默认开启了only_full_group_by选项

ONLY_FULL_GROUP_BY的意思是:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中,也就是说查出来的列必须在GROUP BY后面出现否则就会报错,或者这个字段出现在聚合函数里面。

Windows解决办法

先找到自己的MySQL安装目录

1
select @@basedir;

安装目录

然后进入文件夹找到自己的my.ini配置文件,修改[mysqld]中的内容,添加下面的内容就可以,然后退出数据库,在服务里面重启MySQL就可以

1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION