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 函数调用优化
Apr 07 MySQL
MySQL命令行操作时的编码问题详解
Apr 14 MySQL
MySQL系列之十一 日志记录
Jul 02 MySQL
Mysql实现简易版搜索引擎的示例代码
Aug 30 MySQL
一次MySQL启动导致的事故实战记录
Sep 15 MySQL
面试被问select......for update会锁表还是锁行
Nov 11 MySQL
MYSQL 表的全面总结
Nov 11 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
排查MySQL生产环境索引没有效果
Apr 11 MySQL
mysql使用 not int 子查询隐含陷阱
Apr 12 MySQL
MySQL的存储过程和相关函数
Apr 26 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获取post中的json数据的实现方法
2011/06/08 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
php封装的smarty类完整实例
2016/10/19 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
Three.js学习之网格
2016/08/10 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
python程序封装为win32服务的方法
2021/03/07 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
python Tkinter的图片刷新实例
2019/06/14 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
工程造价自荐信
2013/10/09 职场文书
企业出纳岗位职责
2014/03/12 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
安全生产工作汇报
2014/10/28 职场文书
计划生育责任书
2015/05/09 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
七一活动主持词
2015/06/29 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
教师网络培训心得体会
2016/01/09 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书