阿里云RDS的mysql的sql_mode=only_full_group_by问题
使用group by分组时,查询字段没有分组的字段就会报错
1 | [Err] 1055 - Expression # 1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.user.id' <br>which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by |
原因:
mysql5.7版本和以上的版本都默认开启了only_full_group_by 模式
我这以MySQL8.0.25版本为例
解决方法:
1、查看sql_mode
1 | SELECT @ @sql_mode ; |
查询结果
1 | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
2、将查询的结果去掉ONLY_FULL_GROUP_BY,就成了:
1 | STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
3、去阿里云控制台,找到云数据库RDS→参数设置
将STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION设置进去
重新启动云数据库RDS,运行参数变成了:
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
在使用group by分组时,查询字段没有分组的字段就不会报错
分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!