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 24 MySQL
MySQL官方导出工具mysqlpump的使用
May 21 MySQL
Mysql数据库值的添加、修改、删除及清空操作实例
Jun 20 MySQL
MySQL系列之八 MySQL服务器变量
Jul 02 MySQL
Mysql关于数据库是否应该使用外键约束详解说明
Oct 24 MySQL
浅谈mysql哪些情况会导致索引失效
Nov 20 MySQL
Mysql Innodb存储引擎之索引与算法
Feb 15 MySQL
一文弄懂MySQL中redo log与binlog的区别
Feb 15 MySQL
mysql 获取时间方式
Mar 20 MySQL
MySQL 数据库 增删查改、克隆、外键 等操作
May 11 MySQL
Mysql如何查看是否使用到索引
Dec 24 MySQL
MySQL实现用逗号进行拼接、以逗号进行分割
Dec 24 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
虫族 ZERG 概述
2020/03/14 星际争霸
本地计算机无法启动Apache故障处理
2014/08/08 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
2015/09/23 PHP
jquery蒙版控件实现代码
2010/12/08 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
微信小程序实现登录遮罩效果
2018/11/01 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
js实现随机点名程序
2020/09/17 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
一份软件工程师的面试试题
2016/02/01 面试题
优秀的毕业生的自我评价
2013/12/12 职场文书
婚前保证书
2014/04/29 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书
投诉书格式范本
2015/07/02 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏