后端报错:SQL 语法错误:Expression #2 of SELECT list is not in GROUP BY clause - 解决方法
这个错误是由于 SQL 查询语句中的 GROUP BY 子句与 only_full_group_by 模式不兼容导致的。在该模式下,如果 SELECT 列表中的某个列不在 GROUP BY 子句中,并且该列不是聚合函数的参数,那么就会报错。
根据报错信息,问题出现在查询的第二列 'problem_code' 上。在 GROUP BY 子句中,如果要在 SELECT 列表中包含某个列,那么该列必须在 GROUP BY 子句中出现。
要解决这个问题,你可以尝试以下几种方法:
-
将 SELECT 列表中的 'problem_code' 列添加到 GROUP BY 子句中,例如:GROUP BY union_query.problem_id, union_query.problem_code。
-
如果 'problem_code' 列不需要在 SELECT 列表中显示,可以将其从 SELECT 列表中移除。
-
修改 MySQL 的配置,将 sql_mode 设置为非 only_full_group_by 模式。可以在 MySQL 的配置文件中修改该配置,或者在执行查询之前使用 SET 语句修改。
请记住,在修改 SQL 查询语句之前,最好先备份数据以防止意外发生。
原文地址: http://www.cveoy.top/t/topic/pBTz 著作权归作者所有。请勿转载和采集!