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字符串截取函数小结
Apr 05 MySQL
Mysql MVCC机制原理详解
Apr 20 MySQL
MySQL慢查询的坑
Apr 28 MySQL
MySQL系列之开篇 MySQL关系型数据库基础概念
Jul 02 MySQL
MySQL表类型 存储引擎 的选择
Nov 11 MySQL
mysql自增长id用完了该怎么办
Feb 12 MySQL
MySQL分区以及建索引的方法总结
Apr 13 MySQL
mysql 体系结构和存储引擎介绍
May 06 MySQL
Mysql数据库事务的脏读幻读及不可重复读详解
May 30 MySQL
mysql拆分字符串作为查询条件的示例代码
Jul 07 MySQL
了解MySQL查询语句执行过程(5大组件)
Aug 14 MySQL
DQL数据查询语句使用示例
Dec 24 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
php自动跳转中英文页面
2008/07/29 PHP
PHP MVC框架中类的自动加载机制实例分析
2019/09/18 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&闭包&减缓全局空间污染
2010/11/16 Javascript
JavaScript对IE操作的经典代码(推荐)
2014/03/10 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
python保存文件方法小结
2018/07/27 Python
python实现飞机大战
2018/09/11 Python
python文件写入write()的操作
2019/05/14 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
Keras搭建自编码器操作
2020/07/03 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
python中random模块详解
2021/03/01 Python
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
敬老文明号事迹材料
2014/01/16 职场文书
高中体育教学反思
2014/01/24 职场文书
上诉状格式
2015/05/23 职场文书
保护环境建议书作文500字
2015/09/14 职场文书