MySQL sql模式设置引起的问题


Posted in MySQL onMay 15, 2022

1 报错类似如下

数据库错误: Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Expression 39 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.ss.student_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
The error may exist in URL [jar:file:/usr/local/xxxxx.jar!/BOOT-INF/lib/summer-system-4.6.0.jar!/mapper/system/SuOrgProgramMapper.xml]
The error may involve com.ruoyi.system.mapper.SuOrgProgramMapper.selectSuOrgProgramList-Inline
The error occurred while setting parameters
SQL: select sop.*,so.org_name as orgName,sa.activity_name as activityName,sa.activity_name_en as activityNameEN,         ss.student_id as matchedStudentId,ss.name as matchedStudentName, su.login_name as email, su.real_name AS firstName, su.nickname as nickname         from su_org_program sop         inner join su_activity sa on sop.activity_id=sa.activity_id         inner join su_org so on so.org_id = sop.org_id         left JOIN sys_user su ON sop.main_teacher_id = su.sub         left join (select * from su_student_program where is_matched=1) ssp on ssp.org_program_id= sop.org_program_id         left JOIN su_student ss on ssp.student_id=ss.student_id          WHERE  sop.org_id = ?          GROUP BY sop.org_program_id
Cause: java.sql.SQLSyntaxErrorException: Expression 39 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.ss.student_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Expression 39 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.ss.student_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

2 解决办法

2.1 查看全局sql模式

使用如下m命令:

select @@global.sql_mode;

如下:

mysql> select @@global.sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@global.sql_mode                                                                                                                         |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

2.2 设置全局sql模式

使用如下命令:

SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

如下:

ysql> SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>

2.3 查看当前sql模式

使用如下命令:

select @@sql_mode;

如下:

mysql> select @@sql_mode;
+------------------------------------------------------------------------------------------------------------------------+
| @@sql_mode                                                                                                             |
+------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>

2.4 设置当前sql模式

使用如下命令:

set @@sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

如下:

mysql> set @@sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>

3 永久生效的解决办法

3.1 找到my.cnf文件

可以使用如下命令查找,一般在 /etc/下或者 /etc/mysql/ 目录下

find /etc/ -name my.cnf

3.2 编辑my.cnf文件

vi /etc/mysql/my.cnf

然后增加以下内容:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

3.3 重启数据库服务

systemctl restart mysqld

到此这篇关于sql模式设置引起的问题解决办法的文章就介绍到这了,更多相关sql模式设置内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

MySQL 相关文章推荐
MySQL查询学习之基础查询操作
May 08 MySQL
mysql在项目中怎么选事务隔离级别
May 25 MySQL
Mysql 如何实现多张无关联表查询数据并分页
Jun 05 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
MySQL的安装与配置详细教程
Jun 26 MySQL
MyBatis 动态SQL全面详解
Oct 05 MySQL
MySQL表类型 存储引擎 的选择
Nov 11 MySQL
Mysql中一千万条数据怎么快速查询
Dec 06 MySQL
Linux系统下MySQL配置主从分离的步骤
Mar 21 MySQL
Mysql开启外网访问
May 15 MySQL
浅谈MySql update会锁定哪些范围的数据
Jun 25 MySQL
了解MySQL查询语句执行过程(5大组件)
Aug 14 MySQL
MySQL 逻辑备份 into outfile
May 15 #MySQL
Mysql开启外网访问
May 15 #MySQL
Mysql索引失效 数据库表中有索引还是查询很慢
MySQL查询日期时间
May 15 #MySQL
MySQL 数据库 增删查改、克隆、外键 等操作
May 11 #MySQL
MySQL 计算连续登录天数
May 11 #MySQL
mysql 获取相邻数据项
May 11 #MySQL
You might like
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
swfupload 多文件上传实现代码
2008/08/27 PHP
mayfish 数据入库验证代码
2010/04/30 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
curl和libcurl的区别简介
2015/07/01 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
PHP分享图片的生成方法
2018/04/25 PHP
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
微信小程序 教程之wxapp 视图容器 view
2016/10/19 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
详解Django中的form库的使用
2015/07/18 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
如何利用python发送邮件
2020/09/26 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
大学专科生推荐信范文
2013/11/23 职场文书
工作会议欢迎词
2014/01/16 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
住宅质量保证书
2014/04/29 职场文书
本科生就业推荐信
2014/05/19 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
2016高考冲刺决心书
2015/09/23 职场文书