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 8.0.24版本安装配置方法图文教程
May 12 MySQL
MySQL 常见的数据表设计误区汇总
Jun 07 MySQL
新手入门Mysql--概念
Jun 18 MySQL
通过shell脚本对mysql的增删改查及my.cnf的配置
Jul 07 MySQL
MySQL into_Mysql中replace与replace into用法案例详解
Sep 14 MySQL
面试中老生常谈的MySQL问答集锦夯实基础
Mar 13 MySQL
MySQL优化及索引解析
Mar 17 MySQL
MySQL派生表联表查询实战过程
Mar 20 MySQL
Mysql索引失效 数据库表中有索引还是查询很慢
May 15 MySQL
MySQL数据库实验实现简单数据库应用系统设计
Jun 21 MySQL
MySQL事务的隔离级别详情
Jul 15 MySQL
mysql序号rownum行号实现方式
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
一个php导出oracle库的php代码
2009/04/20 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
根据中文裁减字符串函数的php代码
2013/12/03 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
php文件下载处理方法分析
2015/04/22 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
node错误处理与日志记录的实现
2018/12/24 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
[52:31]VP vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
python生成随机mac地址的方法
2015/03/16 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
大学四年个人自我小结
2014/03/05 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
如何写通讯稿
2015/07/22 职场文书