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 MVCC机制原理详解
Apr 20 MySQL
MySQL root密码的重置方法
Apr 21 MySQL
详解MySQL 联合查询优化机制
May 10 MySQL
探究Mysql模糊查询是否区分大小写
Jun 11 MySQL
解决Mysql的left join无效及使用的注意事项说明
Jul 01 MySQL
SQL实现LeetCode(176.第二高薪水)
Aug 04 MySQL
mysql事务隔离级别详情
Oct 24 MySQL
SQL优化老出错,那是你没弄明白MySQL解释计划用法
Nov 27 MySQL
MySQL 逻辑备份 into outfile
May 15 MySQL
Mysql中@和@@符号的详细使用指南
Jun 05 MySQL
MySQL存储过程及语法详解
Aug 05 MySQL
MySQL远程无法连接的一些常见原因总结
Sep 23 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中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
PHP中抽象类,接口功能、定义方法示例
2019/02/26 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
js下利用控制器载入对应脚本
2010/07/17 Javascript
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
js正则匹配多个全部数据问题
2019/12/20 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
python list转置和前后反转的例子
2019/08/26 Python
Python解析多帧dicom数据详解
2020/01/13 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
Django ORM filter() 的运用详解
2020/05/14 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
DataReader和DataSet的异同
2014/12/31 面试题
数据员岗位职责
2013/11/19 职场文书
党校培训思想汇报
2013/12/30 职场文书
优秀技术工人先进材料
2014/02/17 职场文书
主办会计岗位职责
2014/03/13 职场文书
文明班集体申报材料
2014/05/23 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
工作保证书
2015/01/17 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
检讨书怎么写?
2019/06/21 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python