MySQL 错误 1055: "only_full_group_by" 模式解决方法
这个错误是因为你的 SQL 查询中使用了 GROUP BY,而在 SELECT 列表中的某些列不在 GROUP BY 子句中,并且没有使用聚合函数。这在 MySQL 的新版本中是不允许的,默认情况下启用了'only_full_group_by'模式。
要解决这个问题,你可以做以下几个选择之一:
- 将 SELECT 列表中的所有列都添加到 GROUP BY 子句中:
SELECT
d.`occupation_v` AS '职业类型',
d.`customer_id`,
d.`age` AS '年龄',
d.`mon_salary_v` AS '月收入'
FROM
DATA$ d
GROUP BY d.`occupation_v`, d.`customer_id`, d.`age`, d.`mon_salary_v`
ORDER BY d.`age` DESC
LIMIT 5;
- 使用聚合函数对非 GROUP BY 列进行聚合操作:
SELECT
d.`occupation_v` AS '职业类型',
MAX(d.`customer_id`) AS 'customer_id',
MAX(d.`age`) AS '年龄',
MAX(d.`mon_salary_v`) AS '月收入'
FROM
DATA$ d
GROUP BY d.`occupation_v`
ORDER BY MAX(d.`age`) DESC
LIMIT 5;
选择哪种方法取决于你的需求和数据的特点。请根据实际情况选择适合的方法。
原文地址: https://www.cveoy.top/t/topic/qsR8 著作权归作者所有。请勿转载和采集!