📅  最后修改于: 2023-12-03 14:58:14.763000             🧑  作者: Mango
这个错误提示表明,查询语句中的 ORDER BY 子句中的表达式 #1 不在 GROUP BY 子句中,而且这个表达式中包含了非聚合列,而且这些非聚合列与 GROUP BY 子句中的列功能上不相关。这个问题的根源在于 sql_mode=only_full_group_by,在这个模式下,MySQL 的 GROUP BY 语句必须包含所有非聚合列。
为了解决这个问题,可以采取以下几种措施:
其中,关闭 sql_mode=only_full_group_by 可能会对数据的统计结果产生一定的影响,因此需要慎重考虑。建议采取第一、第二种方式解决这个问题。
-- 错误示例
SELECT column1, column2, SUM(column3)
FROM table1
GROUP BY column1
ORDER BY column2;
-- 正确示例
SELECT column1, column2, SUM(column3)
FROM table1
GROUP BY column1, column2
ORDER BY column2;