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 相关文章推荐
MySQL8.0.24版本Release Note的一些改进点
Apr 22 MySQL
MySQL触发器的使用
May 24 MySQL
.Net Core导入千万级数据至Mysql的步骤
May 24 MySQL
MYSQL(电话号码,身份证)数据脱敏的实现
May 28 MySQL
MySQL8.0.18配置多主一从
Jun 21 MySQL
MySQL的全局锁和表级锁的具体使用
Aug 23 MySQL
MySQL 如何限制一张表的记录数
Sep 14 MySQL
MySQL中order by的使用详情
Nov 17 MySQL
MySQL 开窗函数
Feb 15 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
mysql数据库如何转移到oracle
Dec 24 MySQL
postgresql如何找到表中重复数据的行并删除
May 08 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简单防盗链验证实现方法
2016/07/09 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
js中document.write的那点事
2014/12/12 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
jquery原理以及学习技巧介绍
2015/11/11 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
WebPack配置vue多页面的技巧
2018/05/15 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
python针对excel的操作技巧
2018/03/13 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
python生成n个元素的全组合方法
2018/11/13 Python
python创建学生管理系统
2019/11/22 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
技术总监个人的自我评价范文
2013/12/18 职场文书
护理专业毕业生自荐信
2014/06/15 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
英文导游词
2015/02/13 职场文书
2015年幼师工作总结
2015/04/28 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
Python实现机器学习算法的分类
2021/06/03 Python
使用CSS实现音波加载效果
2023/05/07 HTML / CSS