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 27 MySQL
MySQL 表空间碎片的概念及相关问题解决
May 07 MySQL
MYSQL(电话号码,身份证)数据脱敏的实现
May 28 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
mysql中int(3)和int(10)的数值范围是否相同
Oct 16 MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
Oct 16 MySQL
MySQL Innodb索引机制详细介绍
Nov 23 MySQL
MySQL库表太大怎么办? 数据库分库分表项目实践
Apr 11 MySQL
MySQL聚簇索引和非聚簇索引的区别详情
Jun 14 MySQL
MySQL详解进行JDBC编程与增删改查方法
Jun 16 MySQL
MySQL的意向共享锁、意向排它锁和死锁
Jul 15 MySQL
MySQL事务的隔离级别详情
Jul 15 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之提取多维数组指定列的方法
2017/01/03 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
jquery自定义右键菜单、全选、不连续选择
2016/03/01 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
详解从react转职到vue开发的项目准备
2019/01/14 Javascript
微信小程序实现图片上传
2019/05/23 Javascript
Python实现的金山快盘的签到程序
2013/01/17 Python
python之PyMongo使用总结
2017/05/26 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
Python3 元组tuple入门基础
2020/02/09 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
机械绘图员岗位职责
2013/11/19 职场文书
自荐信范文
2013/12/10 职场文书
军训生自我鉴定范文
2013/12/27 职场文书
运动会领导邀请函
2014/02/05 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
爱心助学感谢信
2015/01/21 职场文书
初中信息技术教学计划
2015/01/22 职场文书
入党转正申请报告
2015/05/15 职场文书
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers