遇见的报错具体是这样的:
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
这样就没啥问题了,我就是用的这种,因为生产数据库不是我想改就能改的!