group by提示 only_full_gruou_by

通常是sql写的不标准导致的,可以发下sql看看,或者可以改sql_mode解决但是不太建议

1 个赞

就是你写的SQL查询的字段除使用sum、max、min等函数的字段之外的字段没有出现在group by后面的字段里

1 个赞

聚合之外的查询字段需要在GROUP BY里面

这个有个参数开关,mysql也有

SET GLOBAL sql_mode = (SELECT REPLACE(@@sql_mode, ‘ONLY_FULL_GROUP_BY’, ‘’));
可以临时改一下

sql_mode,可以直接改的,但是最好看看SQL语句,是出于什么原因,写多了查询字段,这种影响结果集精确性的。

新部署提示开发改,迁移升级兼容的就改sql_mode

检查SQL语法正确性

:thinking:建议把语句发出来看看,group by里要包含非聚合之外的所有字段

sql写的有问题,select后面的字段如果不是在聚合函数里面,那就需要在group by 后

问题如提示。

show session variables like ‘%sql_mode%’;

set sql_mode=“ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”;