mysql - 在 ORDER BY 之后分组

标签 mysql group-by sql-order-by

我需要在 ORDER BY 之后执行 GROUP 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 之后分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7310653/

相关文章:

php - 如何使用 PHP 应用程序从 JIRA 获取数据?

MySQL 错误 – 用户超出了 ‘Max_questions’ 资源(当前值 : 1000)

java - Hibernate 用 NULL 覆盖列值?

c# - SQL Group by for rows with all columns same 除了一个

sql - 不使用 Max()/Greatest() 函数查找最大组值

mysql - 按性能问题排序

php - 从选择框选择填写表格

json - 在 PostgreSQL 中聚合 JSON

SQL Server UNION - 默认 ORDER BY 行为是什么

python - SQLAlchemy 按字段排序()