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时间盲注的五种延时方法实现
May 18 MySQL
MySQL 常见存储引擎的优劣
Jun 02 MySQL
探究Mysql模糊查询是否区分大小写
Jun 11 MySQL
mysql连接查询中and与where的区别浅析
Jul 01 MySQL
Mysql中一千万条数据怎么快速查询
Dec 06 MySQL
Mysql忘记密码解决方法
Feb 12 MySQL
Linux系统下MySQL配置主从分离的步骤
Mar 21 MySQL
MySQL去除密码登录告警的方法
Apr 20 MySQL
mysql 索引的数据结构为什么要采用B+树
Apr 26 MySQL
Mysql开启外网访问
May 15 MySQL
深入理解MySQL中MVCC与BufferPool缓存机制
May 25 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
QueryPath PHP 中的jQuery
2010/04/11 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
Node.js中环境变量process.env的一些事详解
2017/10/26 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
c++生成dll使用python调用dll的方法
2014/01/20 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
Flask之flask-session的具体使用
2018/07/26 Python
python学习之hook钩子的原理和使用
2018/10/25 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
历史学专业个人的自我评价
2013/10/13 职场文书
四年级科学教学反思
2014/02/10 职场文书
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
优秀员工推荐信
2014/05/10 职场文书
聘用意向书
2014/07/29 职场文书
党员志愿者活动方案
2014/08/28 职场文书
行政复议答复书
2015/07/01 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏