MySQL中Group By遇到 SELECT list is not in GROUP BY clause and contains nonaggregated ........

遇见的报错具体是这样的:

Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'a
.time2' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

大概的意思就是:select 语句中的字段不在Group By中,并且包含未聚合的列'a.time2',在sql_mode = only_full_group_by时造成不兼容。本来在测试的环境下是没有问题的,但是在生产环境下报错。然后上网查看,得到了两个解决方案:

方案一:修改Mysql中sql_mode的设置,首先通过

select @@global.sql_mode

来查看一下自己的MySql的设置情况,第一个设置就是only_full_group_by 这哥们儿,重新设置,将其删掉

set @@global.sql_mode = '这是删除之后的设置'

然后就行了!!!

方案二:将存在于select中查询字段而未在Group By中的字段,用聚合函数包上,也就是这样婶儿:

select max(a.time2) as time2, a.time1, a.date from ....... group by a.time1, a.date 

这样就没啥问题了,我就是用的这种,因为生产数据库不是我想改就能改的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值