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 相关文章推荐
jdbc使用PreparedStatement批量插入数据的方法
Apr 27 MySQL
SQL语法CONSTRAINT约束操作详情
Jan 18 MySQL
MySQL中int (10) 和 int (11) 的区别
Jan 22 MySQL
MySQL 外连接语法之 OUTER JOIN
Apr 09 MySQL
MySQL数据库优化之通过索引解决SQL性能问题
Apr 10 MySQL
MySQL查询日期时间
May 15 MySQL
MySQL 自动填充 create_time 和 update_time
May 20 MySQL
详解Mysql数据库平滑扩容解决高并发和大数据量问题
May 25 MySQL
MySql数据库触发器使用教程
Jun 01 MySQL
MySQL数据库表约束讲解
Jun 21 MySQL
MySQL的表级锁,行级锁,排它锁和共享锁
Jul 15 MySQL
MySQL一劳永逸永久支持输入中文的方法实例
Aug 05 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 配置文件中open_basedir选项作用
2009/07/19 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
jquery 学习之二 属性(类)
2010/11/25 Javascript
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
JS正则表达式修饰符global(/g)用法分析
2016/12/27 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
python 列表删除所有指定元素的方法
2018/04/19 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
Django框架models使用group by详解
2020/03/11 Python
python Xpath语法的使用
2020/11/26 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
有个性的自我评价范文
2013/11/15 职场文书
采购部岗位职责
2013/11/24 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
送给客户微信问候语!
2019/07/04 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL
如何Tomcat中使用ipv6地址
2022/05/06 Servers