MySQL的功能依赖检测功能

某次运行项目,点击某个功能,IDEA的Console报以下错误:Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column...

问题出现的原因是:我本地的MySQL版本是5.7.25,MySQL5.7.5以上的版本默认开启功能依赖检测功能,也就是默认开启ONLY_FULL_GROUP_BY的SQL模式(可以通过select @@global.sql_mode;命令查看)

在此模式下,select列表只能选择出现在group by列表中的列,如下面,前两条语句可以正常执行,第三条就会报前面的错误。

select service from table group by service;
select service, id from table group by service, id;
select service, id from table group by service;

问题解决方法:

执行命令:

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';

不过为了避免重启后失效,最好还是在配置文件中直接配置:

sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值