MySQL报错“only_full_group_by” 怎么解决

2023-04-15 07:55:00 mysql 报错 ldquo

MySQL报错“only_full_group_by”是因为MySQL在执行GROUP BY子句时,要求所有的列都必须出现在GROUP BY子句中,或者被聚集函数(如SUM,COUNT,MAX,MIN,AVG)包含在内。这是MySQL 5.7.5版本后增加的一个新功能,用来改善MySQL的SQL标准支持。

要解决MySQL报错“only_full_group_by”,可以采取以下几种方法:

1. 将MySQL的sql_mode设置改为不包含ONLY_FULL_GROUP_BY,这样可以禁用该功能,从而恢复MySQL 5.7.4及更早版本的行为;

2. 在SELECT子句中添加所有的列,以确保它们都被包含在GROUP BY子句中;

3. 将不需要的列用聚集函数(如SUM,COUNT,MAX,MIN,AVG)包含在内;

4. 将MySQL的sql_mode设置改为STRICT_TRANS_TABLES,这样可以使MySQL支持ONLY_FULL_GROUP_BY,但是会忽略不符合标准的查询;

5. 使用MySQL的NO_ENGINE_SUBSTITUTION参数,这样可以使MySQL忽略不符合标准的查询,而不会报错;

6. 将MySQL的sql_mode设置改为ERROR_FOR_DIVISION_BY_ZERO,这样可以使MySQL支持ONLY_FULL_GROUP_BY,但是会报错;

以上就是解决MySQL报错“only_full_group_by”的几种方法,根据实际情况选择合适的方法即可解决问题。

相关文章