大概是第二次遇到这个问题才想起来写这个博客记录…
这个报错是执行有GROUP BY的语句时出现的,原因是MySQL启用了默认的only_full_group_by SQL模式,导致GROUP BY语句报错.
执行select @@sql_mode
可以看到sql_mode的值为
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
所以要将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';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
再次使用GROUP BY查询,问题解决
只是留个记录…避免日后再遇到
参考博客:
https://blog.youkuaiyun.com/fansili/article/details/78664267
https://blog.youkuaiyun.com/renyiforever/article/details/80571884