我需要在GROUP BY
之后执行ORDER BY
。我不明白为什么MySQL不支持这一点。
这是我的代码:
SELECT
`pages`.`id`,
`contents`.`id_language`,
[...]
[...]
ORDER BY
FIND_IN_SET(`languages`.`id`, '3') DESC
[the GROUP BY]
结果将是这样的:
id | id_language | ...
1 3
1 1
2 3
2 5
2 1
我需要按ID分组,只需要第一个结果,并且需要保存在 View 中。因此,我不能使用SUBQUERY。
结果需要是:
id | id_language | ...
1 3
2 3
注意:不要被
id_language = 3
弄糊涂,因为这不是规则。 最佳答案
SELECT id, idl
FROM (SELECT
`pages`.`id` as id,
`contents`.`id_language` as idl,
[...]
[...]
ORDER BY
FIND_IN_SET(`languages`.`id`, '3') DESC
) d
GROUP BY d.id
关于mysql - 按ORDER BY后的GROUP BY,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7310653/