MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法


Posted in MySQL onJune 14, 2022

项目场景:

最近在部署项目之后,运行出现报错:

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘grades.order_id’ 
which is not functionally dependent on columns in GROUP BY clause; 
this is incompatible with sql_mode=only_full_group_by

问题描述

字面意思理解:

SELECT 列表的表达式 #1 不在 GROUP BY 子句中,并且包含非聚合列“grades.order_id” 它在功能上不依赖于
GROUP BY 子句中的列; 这与 sql_mode=only_full_group_by 不兼容

使用GROUP BY 语句违背了sql_mode=only_full_group_by。因为mysql版本5.7之后默认的模式是ONLY_FULL_GROUP_BY

原因分析:

查看官方文档,发现从 MySQL 5.7.5 开始,默认 SQL 模式包括 ONLY_FULL_GROUP_BY。 (在 5.7.5 之前,MySQL 不检测函数依赖,并且默认不启用 ONLY_FULL_GROUP_BY。)这可能会导致一些sql语句失效。

解决方案:

执行命令vim /etc/mysql/conf.d/mysql.cnf修改配置文件

如果my.cnf中有sql_mode配置,则将ONLY_FULL_GROUP_BY去掉。

如果没有,则将下面内容放到相应位置

[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

保存之后,执行命令service mysql restart重启mysql即可。

2022.06.10更新

MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法

最近用docker安装mysql又出现这个问题,修改配置文件之后,重启mysql发现连不上mysql

于是查看错误信息 docker logs -f --tail 10 mysql,出现报错:

Error while setting value
‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’
to ‘sql_mode’

MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法

原来mysql 8.0 以上取消了NO_AUTO_CREATE_USER这个关键字,在my.cnf中的sql_mode中删掉这个关键字即可。

总结

到此这篇关于MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法的文章就介绍到这了,更多相关MySQL运行报错内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL如何构建数据表索引
May 13 MySQL
MySQL 使用自定义变量进行查询优化
May 14 MySQL
my.ini优化mysql数据库性能的十个参数(推荐)
May 26 MySQL
Mysql效率优化定位较低sql的两种方式
May 26 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
MySQL连表查询分组去重的实现示例
Jul 01 MySQL
mysql 数据插入优化方法之concurrent_insert
Jul 01 MySQL
MySQL系列之九 mysql查询缓存及索引
Jul 02 MySQL
mysql中int(3)和int(10)的数值范围是否相同
Oct 16 MySQL
MySQL学习之基础操作总结
Mar 19 MySQL
SQL语句多表联合查询的方法示例
Apr 18 MySQL
Windows 64位 安装 mysql 8.0.28 图文教程
Apr 19 MySQL
MySql如何将查询的出来的字段进行转换
Jun 14 #MySQL
MySQL安装失败的原因及解决步骤
MySQL范围查询优化的场景实例详解
Jun 10 #MySQL
MySQL数据库如何查看表占用空间大小
Jun 10 #MySQL
mysql中关键词exists的用法实例详解
Jun 10 #MySQL
sql注入报错之注入原理实例解析
Jun 10 #MySQL
MySQL如何修改字段类型和字段长度
Jun 10 #MySQL
You might like
彻底杜绝PHP的session cookie错误
2009/08/09 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
js命名空间写法示例
2015/12/18 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
Python素数检测的方法
2015/05/11 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
Python使用OpenCV进行标定
2018/05/08 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
python实现的生成word文档功能示例
2019/08/23 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
实现Python3数组旋转的3种算法实例
2020/09/16 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
COSETTE官网:奢华,每天
2020/03/22 全球购物
制药工程专业应届生求职信
2013/09/24 职场文书
应征英语教师求职信
2013/11/27 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2014年招商工作总结
2014/11/22 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
单身证明格式样本
2015/06/15 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python
Elasticsearch 聚合查询和排序
2022/04/19 Python