在我们使用MySQL的时候总是会遇到各种各样的报错,让人头痛不已。其中有一种报错,sql_mode=only_full_group_by,在升级MySQL 5.7.x和8.x版本后十分常见,每次都是老长的一串出现
比如下面的就会报错
select id,aa from tab_test group by aa
如果改成这个样子:
select id,aa from tab_test group by id,aa
或者这个样子:
select aa from tab_test group by aa
就不会报错了。
当然,这样子随意的改动代码,我们可能就无法得到想要的信息了。
解决办法
MySQL命令行或者工具连接到MySQL,执行下面查询
select @@global.sql_mode;
查询结果
每个人结果可能不同,但是一定有个ONLY_FULL_GROUP_BY
的项目,复制出来,把这个项目去掉,然后添加到MySQL的cnf配置文件sql_mode=''里面,参考
[mysqld] sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
修改完成后重启MySQL服务即可
https://www.leftso.com/article/2403291953554511.html