-
SELECT list is not in GROUP BY clause_mysql执行的时候报错了
- 网站名称:SELECT list is not in GROUP BY clause_mysql执行的时候报错了
- 网站分类:技术文章
- 收录时间:2025-07-11 22:50
- 网站地址:
“SELECT list is not in GROUP BY clause_mysql执行的时候报错了” 网站介绍
如果你一个系统,以前用的是mysql的版本是:5.6.22
然后,后来,你再安装mysql的时候版本变成5.7.32 等等了,其实就是说,以前你用的
mysql版本是5.6.xx,后来用5.7.xx了,这样在你程序没变的时候,就会报这个错误:
\### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ydy.t1.birthday' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by ### The error may exist in file [D:\ALLSVN\ydy\YdyBack\target\classes\mapper\UserMapper.xml] ### The error may involve com.company.project.dao.UserMapper.loadUserByUsername-Inline ### The error occurred while setting parameters ### SQL: select IF(birthday=null,0,year(from_days( datediff(now(),birthday)))) as age, t1.*, del_flag as delFlag from user t1 where t1.username = ? group by username ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ydy.t1.birthday' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by ; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ydy.t1.birthday' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
怎么解决?
1.先说原因:
MySQL5.7.5后only_full_group_by成为sql_mode的默认选项之一,这可能导致一些sql语句失效。
比如在使用group by进行分组查询报错
2.在sql命令行中输入select @@sql_mode;这时我们能够看到自己的sql_mode配置,其中如果有ONLY_FULL_GROUP_BY,
那它就是group by查询报错的原因了
select @@sql_mode;
可以看到我这个5.6.22的机器去查询sql_mode:
可以看到,里面就没有:ONLY_FULL_GROUP_BY对吧.
3.然后我再去查看一个:5.7.32的版本去看看:
可以看到数据库版本是5.7.32
然看看查出来的sql_mode的开头是:ONLY_FULL_GROUP_BY对吧. 就是因为这个导致的上面的错误:
4.解决方法:
直接用这种办法解决就可以了,在windows上,和在linux上面是一样的:
vim
/etc/mysql/conf.d/mysql.cnf 编辑配置文件:
可以看到,其实就是把查询出来的,那一段字符串,去掉ONLY_FULL_GROUP_BY,然后又在配置文件mysql.cnf中配置了一下:
在,mysqld这个标签下加上,sql_mode = '' 或者在最下面加上下面的内容都可以的:
[mysqld]
sql_mode = 'STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION'
编辑以后退出就可以了,然后
systemctl restart mysqld
或者:
service mysql restart
重启一下mysql就好了
- 最近发表
-
- 字节跳动把Python入门知识点整理成手册了,高清PDF开放下载
- 字节跳动竟然斥巨资开发出《Python知识手册》,高清PDF
- 强烈推荐!238页《python编程从入门到实践》完整版,PDF开放下载
- 强烈推荐!248页《python编程从入门到实践》完整版,PDF开放下载
- 强烈推荐!284页《python编程从入门到实践》完整版,PDF开放下载
- 《Python学习手册(第4版)》PDF开放下载,建议收藏
- 户型图怎么画?简单上手的免费户型图绘制工具
- 电气图模板一键套用,图文并茂一键套用的电气图软件
- 业务流程图、页面流程图、泳道图之间的区别
- 万兴科技:公司已完成推理大模型DeepSeek-R1的适配
- 标签列表
-
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- 二调符号库 (23)
- acmecadconverter_8.52绿色版 (25)
- f12019破解 (16)
- 流星蝴蝶剑修改器 (18)
- np++ (17)
- 梦幻诛仙表情包 (36)
- 魔兽模型 (23)
- java面试宝典2019pdf (26)
- beamoff下载 (17)
- disk++ (30)
- vncviewer破解版 (20)
- word文档批量处理大师破解版 (19)
- pk10牛牛 (20)
- 加密与解密第四版pdf (29)
- iteye (26)
- parsevideo (22)
- ckeditor4中文文档 (20)
- centos7.4下载 (32)
- cuda10.1下载 (22)
- intouch2014r2sp1永久授权 (33)
- usb2.0-serial驱动下载 (24)