#### # 问题描述

当我们迁移到 MySQL 5.7+ 的版本时，常会碰到 ERROR 1055 only_full_group_by 错误，这是 5.7 之后 SQL_MODE 默认打开了严格模式导致的错误。说明你代码里有地方写的不严谨。

#### # 解决方法

1. 重写 sql
2. 返回宽松模式

       1
       2
       3
       4
       5

       #查询sql_mode
       select @@GLOBAL.sql_mode;
       #删除ONLY_FULL_GROUP_BY
       #设置sql_mode
       set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

3. 使用聚合函数
   如果某些特别的原因就是要查询未分组字段，但你又没空改代码，那么我们可使用聚合函数来规避这类错误，算是一种折中的方案了，语法改严谨了，代码又不需要大动。如 ANY_VALUE ()、MAX ()、MIN () 或者 GROUP_CONCAT () 等聚合函数。

mysql