栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

MySQL下出现com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1......解决方案

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL下出现com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1......解决方案

sql报错:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘bdas_hz.a.custname’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

这个错误的缘由是高版本mysql(客户服务器版本在MySQL 5.7.5及以上的依赖检测功能)默认的sql_mode包含ONLY_FULL_GROUP_BY,这个属性保证了select到的列都在group by中出现,对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的。

查看sql_mode的语句以下:

select @@GLOBAL.sql_mode;

暂时修改sql_mode发现并未解决问题,重启mysql数据库以后,ONLY_FULL_GROUP_BY又出现了:

set @@GLOBAL.sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

mysql重启命令:

service mysqld stop
service mysqld start

添加sql_mode的方式强制指定不须要ONLY_FULL_GROUP_BY属性,my.cnf位于etc文件夹下,vim下光标移到最后,添加:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

修改并重启mysql后,成功搞定!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/290139.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号