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令人咋舌的隐式转换
Apr 05 MySQL
MySQL数据迁移相关总结
Apr 29 MySQL
MySQL获取所有分类的前N条记录
May 07 MySQL
MySQL表字段时间设置默认值
May 13 MySQL
分析MySQL抛出异常的几种常见解决方式
May 18 MySQL
MySQL中InnoDB存储引擎的锁的基本使用教程
May 26 MySQL
QT连接MYSQL数据库的详细步骤
Jul 07 MySQL
MySQL外键约束(FOREIGN KEY)案例讲解
Aug 23 MySQL
MySQL悲观锁与乐观锁的实现方案
Nov 02 MySQL
MySQL和Oracle批量插入SQL的通用写法示例
Nov 17 MySQL
聊聊mysql都有哪几种分区方式
Apr 13 MySQL
MySQL脏读,幻读和不可重复读
May 11 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查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
深入分析js中的constructor和prototype
2012/04/07 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
js innerHTML 改变div内容的方法
2013/08/03 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
2020/03/04 Javascript
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
Python 占位符的使用方法详解
2019/07/10 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
纽约海:Sea New York
2018/11/04 全球购物
MYSQL基础面试题
2012/05/13 面试题
软件部经理岗位职责范本
2014/02/25 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
高考标语大全
2014/06/05 职场文书
苏州园林导游词
2015/02/03 职场文书
大学生团员个人总结
2015/02/14 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
同学聚会祝酒词
2015/08/10 职场文书
八年级物理教学反思
2016/02/19 职场文书
python文件目录操作之os模块
2021/05/08 Python