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 07 MySQL
mysql升级到5.7时,wordpress导数据报错1067的问题
May 27 MySQL
MYSQL 无法识别中文的永久解决方法
Jun 03 MySQL
新手入门Mysql--sql执行过程
Jun 20 MySQL
MySQL系列之十五 MySQL常用配置和性能压力测试
Jul 02 MySQL
MySQL中几种插入和批量语句实例详解
Sep 14 MySQL
mysql事务对效率的影响分析总结
Oct 24 MySQL
浅谈mysql哪些情况会导致索引失效
Nov 20 MySQL
MySQL中CURRENT_TIMESTAMP的使用方式
Nov 27 MySQL
Mysql多层子查询示例代码(收藏夹案例)
Mar 31 MySQL
Windows 64位 安装 mysql 8.0.28 图文教程
Apr 19 MySQL
mysql数据库实现设置字段长度
Jun 10 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
Javascript typeof 用法
2008/12/28 Javascript
Javascript学习笔记5 类和对象
2010/01/11 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
vue-axios使用详解
2017/05/10 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
python实现解数独程序代码
2017/04/12 Python
python数据处理实战(必看篇)
2017/06/11 Python
将python代码和注释分离的方法
2018/04/21 Python
python for 循环获取index索引的方法
2019/02/01 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
python自动点赞功能的实现思路
2020/02/26 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
Java如何读取CLOB字段
2013/10/10 面试题
煤矿机修工岗位职责
2014/02/07 职场文书
学生安全承诺书
2014/05/22 职场文书
建筑节能汇报材料
2014/08/22 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers