Expression #8 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'app4g.P.f_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
时间: 2023-07-18 10:35:49 浏览: 226
这是 MySQL 数据库中的一个错误,通常是由于使用了 ONLY_FULL_GROUP_BY sql_mode 导致的。该错误是由于查询语句中 SELECT 子句中的某些列没有被 GROUP BY 子句包含,并且这些列不是聚合函数的参数所导致的。
要解决此问题,可以采取以下几种方法之一:
- 在 my.cnf 中禁用 ONLY_FULL_GROUP_BY sql_mode:
在 MySQL 5.7 及更高版本中,可以通过将以下行添加到 my.cnf 文件中来禁用 ONLY_FULL_GROUP_BY sql_mode:
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
然后重启 MySQL 服务。
- 添加缺少的列到 GROUP BY 子句中:
在查询语句中添加缺少的列到 GROUP BY 子句中,例如:
SELECT P.f_name, COUNT(*) as count FROM table_name GROUP BY P.f_name;
- 将 SELECT 子句中的列改为聚合函数:
如果您不需要特定的列的精确值,您可以将它们改为聚合函数:
SELECT MAX(P.f_name), COUNT(*) as count FROM table_name GROUP BY P.some_column;
这样可以确保查询语句符合 ONLY_FULL_GROUP_BY sql_mode 的要求。
相关推荐



















