【问题标题】:MySQL GROUP BY and ORDER BY orderMySQL GROUP BY 和 ORDER BY 顺序
【发布时间】:2012-10-31 13:14:39
【问题描述】:

后面是哪个重要吗?我的意思是如果我这样做了

SELECT * FROM  table GROUP BY x ORDER BY y

结果会先分组再排序吗?

【问题讨论】:

  • ORDER BY放在前面是语法错误。它总是最后评估,并且必须在GROUP BY 之后发生。

标签: mysql sql


【解决方案1】:

ORDER 是要执行的最后一个子句。

执行顺序

  • FROM 子句
  • WHERE 子句(你不能在这个子句上使用别名的原因
  • GROUP BY 子句
  • HAVING 子句
  • SELECT 子句
  • ORDER BY 子句

For more info, please click here

【讨论】:

【解决方案2】:
  • 第一个WHERE 条件
  • 第二个GROUP BY
  • 第三个是ORDER BY

例子:

SELECT * FROM table GROUP BY columnanme ORDER BY columnanmae

【讨论】:

    【解决方案3】:

    在 MySQL 中,GROUP BY 子句也具有排序列的副作用。如果您的查询中已经有一个GROUP BY 子句来生成所需的排序顺序,则不需要ORDER BY

    【讨论】:

      猜你喜欢
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      相关资源
      最近更新 更多