1、MySQL5.7 报错

MySQL5.7 在执行查询语句时,有可能会出现“this is incompatible with sql_mode=only_full_group_by”的报错信息。这是由于 MySQL5.7 引入了一个新的 sql_mode,即 ONLY_FULL_GROUP_BY,它要求查询语句中的 GROUP BY 子句必须包含在 SELECT 子句中的所有列表项。

2、ONLY_FULL_GROUP_BY 模式

ONLY_FULL_GROUP_BY 模式是 MySQL5.7 引入的一个新的 sql_mode,它要求查询语句中的 GROUP BY 子句必须包含在 SELECT 子句中的所有列表项。这意味着,如果 SELECT 子句中的列表项不在 GROUP BY 子句中,MySQL 将抛出一个错误,提示“this is incompatible with sql_mode=only_full_group_by”。

3、解决方法

要解决 MySQL5.7 报错“this is incompatible with sql_mode=only_full_group_by”,可以采取以下措施:

1、在 MySQL 命令行模式下,可以使用以下命令将 sql_mode 设置为非 ONLY_FULL_GROUP_BY 模式:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Mysql

2、可以在 MySQL 配置文件 my.cnf 中,将 sql_mode 设置为非 ONLY_FULL_GROUP_BY 模式:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Mysql

3、可以在 MySQL 配置文件 my.cnf 中,将 sql_mode 设置为空:

sql_mode=
Mysql

以上是解决 MySQL5.7 报错“this is incompatible with sql_mode=only_full_group_by”的方法,可以根据自己的情况选择合适的解决方法。