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之PXC集群搭建的方法步骤
May 25 MySQL
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
Jun 18 MySQL
MySQL连表查询分组去重的实现示例
Jul 01 MySQL
Mysql案例刨析事务隔离级别
Sep 25 MySQL
MySQL数据库超时设置配置的方法实例
Oct 15 MySQL
如何避免mysql启动时错误及sock文件作用分析
Jan 22 MySQL
关于MySQL临时表为什么可以重名的问题
Mar 22 MySQL
MySQL创建表操作命令分享
Mar 25 MySQL
MySQL插入数据与查询数据
Mar 25 MySQL
为什么MySQL不建议使用SELECT *
Apr 03 MySQL
MySQL中的全表扫描和索引树扫描
May 15 MySQL
MySQL事务的ACID特性以及并发问题方案
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的error_reporting错误级别变量对照表
2014/07/08 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
kmock javascript 单元测试代码
2011/02/06 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
利用Python实现网络测试的脚本分享
2017/05/26 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
建筑经济管理专业求职信分享
2014/01/06 职场文书
建筑设计学生的自我评价
2014/01/16 职场文书
《梅兰芳学艺》教学反思
2014/02/24 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
实习单位推荐信
2015/03/27 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书