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主从复制及读写分离
May 07 MySQL
MySQL 可扩展设计的基本原则
May 14 MySQL
如何设计高效合理的MySQL查询语句
May 26 MySQL
ORM模型框架操作mysql数据库的方法
Jul 25 MySQL
SQL实现LeetCode(178.分数排行)
Aug 04 MySQL
Mysql中where与on的区别及何时使用详析
Aug 04 MySQL
SpringBoot连接MySQL获取数据写后端接口的操作方法
Nov 02 MySQL
SQL基础的查询语句
Nov 11 MySQL
sql查询语句之平均分、最高最低分及排序语句
May 30 MySQL
Mysql中mvcc各场景理解应用
Aug 05 MySQL
mysql函数之截取字符串的实现
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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
解析PHP无限级分类方法及代码
2013/06/21 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
ES6新特性之模块Module用法详解
2017/04/01 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
webpack打包js的方法
2018/03/12 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
Vue项目安装插件并保存
2019/01/28 Javascript
浅谈Node框架接入ELK实践总结
2019/02/22 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
nodejs实现获取本地文件夹下图片信息功能示例
2019/06/22 NodeJs
python操作xml文件示例
2014/04/07 Python
Python下singleton模式的实现方法
2014/07/16 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
什么是抽象
2015/12/13 面试题
大学生求职信
2014/06/17 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
商业门面租房协议书
2014/11/25 职场文书
护理工作个人总结
2015/03/03 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
python之django路由和视图案例教程
2021/07/26 Python
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android
Python 数据可视化之Seaborn详解
2021/11/02 Python