1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test1.tb_course.course_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 21:35:16 浏览: 136
解决大于5.7版本mysql的分组报错Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated
这个错误是由于 MySQL 的 sql_mode 配置为 only_full_group_by 模式导致的。这个模式要求在 GROUP BY 子句中出现的每个列,在 SELECT 子句中都必须出现且必须进行聚合操作(如 COUNT、SUM、AVG 等),否则就会报错。
解决这个问题可以有以下两种方式:
1. 将 sql_mode 配置修改为非 only_full_group_by 模式,或者将其禁用。
2. 在 SELECT 子句中将需要显示的列进行聚合操作,或者将其移动到 GROUP BY 子句中。
例如,可以将 SQL 语句修改为:
SELECT course_id, course_name, COUNT(*) AS count
FROM tb_course
GROUP BY course_id, course_name;
这样就可以避免这个错误了。
阅读全文