这是因为随着MySQL版本更新带来的问题,在MySQL5.7版本之后对group by进行了优化。他默认启动改进之后的版本启动了ONLY_FULL_GROUP_BY模式。
方法一:
这种方法在数据库重启后失效
# 查看数据库版本以及sql_mode
select version(), @@sql_mode;
# 修改sql_mode
set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
方法二:
彻底解决
编辑MySQL的配置文件my.cnf;在 [mysqld]
下添加 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION;
重启MySQL服务即可
评论区