# 解决 MySQL 报 only_full_group_by 错误 - 解决问题 - 工作 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎？为之，则难者亦易矣
Keywords: mysql

#### # 问题描述

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

#### # 解决方法

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

    #查询 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