我需要在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/

10-15 14:48
查看更多