欢迎来到站长天空!

其它数据库

当前位置: 主页 > 数据库 > 其它数据库

记录:解决MySQL5.7以上group by报错的问题

时间:2025-12-05 13:00:04|栏目:其它数据库|点击:

因为双十一购买了新的服务器,配置从原先的1C1G1M,升级到现在的2C4G5M,所以在搬家后也用上了更高版本的环境:

Linux 7.6 64位

Nginx 1.16.1

PHP 7.3.1

MySQL 8.0

也正因为高版本的MySQL原因,对于使用 GROUP BY 会导致出现 SELECT list is not in GROUP BY clause and contains nonaggregated 问题。

记录:解决MySQL5.7以上group by报错的问题 MySQL 第1张

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

这时候可以登录数据库,查看当前的 sql_mode 模式:

记录:解决MySQL5.7以上group by报错的问题 MySQL 第2张

把 ONLY_FULL_GROUP_BY 删掉,其它的复制出来,找到数据库配置文件 my.cnf ,在里面的 [mysqld] 中添加:

SQL
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

记录:解决MySQL5.7以上group by报错的问题 MySQL 第3张

然后重启下 MySQL 即可。

注意:不要添加到 my.cnf 配置文件中的最底部,那样会不生效的,具体原因未知,放到 [mysqld] 下面即可。

上一篇:Mysql update多表联合更新的方法小结

栏    目:其它数据库

下一篇:MySQL8.0.19安装教程

本文标题:记录:解决MySQL5.7以上group by报错的问题

本文地址:https://zz.feitang.co/shujuku/28631.html

广告投放 | 联系我们 | 版权申明

申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:257218569 | 邮箱:257218569@qq.com

Copyright © 2018-2026 站长天空 版权所有 Powered by EyouCms冀ICP备14023439号