MySQL8.0使用GROUP BY的问题
2024-10-21 05:59:14
当使用group by的语句中,select后面跟的列,在group by后面没有时,会报以下错误:
Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'XXX' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
这是MySQL8.0默认开启only_full_group_by模式导致的,该模式限定select后面跟的列,在group by后面必须要有。
解决方式一:该方式重启mysql会失效
1、查询sql_mode:
select @@session.sql_mode;
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
2、重新设置sql_mode,删除ONLY_FULL_GROUP_BY
set @@global.sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
解决方式二
修改配置文件my.cnf
找到my.cnf,添加一下配置:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
重启mysql即可。
service mysqld restart
最新文章
- CentOS下mysql数据库常用命令总结
- Parallel并行化编程
- 《ASP.NET1200例》ListView 控件与DataPager控件的结合<;一>;
- 如何在安装32位Oracle客户端组件的情况下以64位模式运行
- BZOJ 2296 随机种子
- Spring3之Security
- eclipse 分屏
- 02-测试、文件读写、xml解析
- 感知器算法--python实现
- 起底区块链人脸识别黑马,一个没有人像的人脸识别:iFace Chain(爱妃链)
- Git使用全解
- jquery load 陷阱【原】
- oracle杀掉连接
- os模块+sys模块+random模块+shutil模块
- vins-mono代码解读
- 使用 Spring 2.5 注释驱动的 IoC 功能
- HTML标签之marquee
- [转贴] 数字证书及 CA 的扫盲介绍
- 元程序 /如何取test.py中name的值
- Datatable.Select()用法简介