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
mysql5.7使用binlog 恢复数据的方法
Jun 03 MySQL
mysql外连接与内连接查询的不同之处
Jun 03 MySQL
mysql 如何获取两个集合的交集/差集/并集
Jun 08 MySQL
MySQL高速缓存启动方法及参数详解(query_cache_size)
Jul 01 MySQL
MySQL query_cache_type 参数与使用详解
Jul 01 MySQL
MySQL一些常用高级SQL语句
Jul 03 MySQL
mysql insert 存在即不插入语法说明
Mar 25 MySQL
Mysql使用全文索引(FullText index)的实例代码
Apr 03 MySQL
详细介绍MySQL中limit和offset的用法
May 06 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
mysql 体系结构和存储引擎介绍
May 06 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
留言板翻页的实现详解
2006/10/09 PHP
php导入导出excel实例
2013/10/25 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
js导出txt示例代码
2014/01/14 Javascript
jquery阻止后续事件只执行第一个事件
2014/07/24 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
安全生产投入制度
2014/01/29 职场文书
保证书格式范文
2014/04/28 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
优秀员工推荐材料
2014/12/20 职场文书
个人汇报材料范文
2014/12/30 职场文书
优质服务标语口号
2015/12/26 职场文书
法制教育讲座心得体会
2016/01/14 职场文书
解除租赁合同协议书
2016/03/21 职场文书
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL
Python采集股票数据并制作可视化柱状图
2022/04/04 Python