【问题标题】:Order in mysql querymysql查询中的顺序
【发布时间】:2012-12-24 13:34:43
【问题描述】:

我只想问一下我的查询/查询遇到的问题。例如,我从一个查询中得到以下结果,该查询是 4 个查询的联合:​​

alpha,alpha,alpha,bravo,bravo,bravo,charlie,charlie,charlie,delta,delta,delta

我需要做什么才能使结果的顺序:

阿尔法,布拉沃,查理,德尔塔,阿尔法,布拉沃,查理,德尔塔,阿尔法,布拉沃,查理,德尔塔?

如果这个问题之前可能已经在 stackoverflow 中得到回答,我深表歉意,因为我不知道这个问题的正确关键字来搜索数据库。任何帮助将不胜感激,谢谢!

【问题讨论】:

  • 首先,您为什么期望结果中有重复项?其次,为什么不能在调用它的代码中进行必要的重新排序?
  • 您需要一些辅助列进行排序。什么是表架构?
  • 查询示例会有用。
  • 感谢您的回复。基本上,我只是使用拼音代码来表示我们在我们正在构建的网站上声明的不同类型的帖子。我只是希望它们有一个均匀的分布,以尽量减少帖子与其他相同类型的帖子的混乱。 Mahmoud Gamal 的回答似乎是我们目前问题的临时解决方案。

标签: mysql sql-order-by


【解决方案1】:

你可以有一个类似排序顺序的新列:

SELECT *
FROM
(
   SELECT acolumn, 1 AS sortorder FROM table1
   UNION ALL
   SELECT acolumn, 2              FROM table2
   UNION ALL
   SELECT acolumn, 3              FROM table3
   UNION ALL
   SELECT acolumn, 4              FROM table4
) u
ORDER BY aColumn, sortorder;

【讨论】:

    【解决方案2】:

    MySQL 可以按数字顺序排列 (1>2>n) 或按字母顺序排列 (a>b>x)。数据的排序方式取决于要排序的类型。

    Mahmouds 的答案是创建一个数字字段,您可以通过该字段对联合进行排序。

    【讨论】:

      【解决方案3】:

      您可以使用 distinct 关键字:

      Select DISTINCT
      

      【讨论】:

        猜你喜欢
        • 2013-09-12
        • 1970-01-01
        • 2010-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多