Mysql根据两个标准对表进行排序

时间:2016-03-20 18:52:17

标签: mysql

我有一个关于如何根据两个标准订购表的问题。我在桌面游戏中有他们的开始和结束时间。所以我想展示即将开始的顶级游戏。这很容易我们可以按时间顺序排序。但是我希望当比赛结束时能够触底。 简单的架构:

  1. game1 start_at 10:00在12:00结束
  2. game2 start_at 14:00在16:00结束
  3. game3 start_at 20:00在22:00结束
  4. 所以如果现在是16:00。查询结果显示

    1. 的Game1
    2. GAME2
    3. game3
    4. 我不希望这样,因为game1现在在12:00时结束,现在是16:00。 我希望结果如果它现在是16:00

      1. GAME2
      2. game3
      3. 的Game1

1 个答案:

答案 0 :(得分:0)

假设您的列是:

 game | start_time | end_time
------|------------|-----------
  g1  | 10:00      | 12:00
  g2  | 14:00      | 16:00
  g3  | 20:00      | 22:00      

你可以这样做:

SELECT game FROM
(
   SELECT game, start_time, end_time, 
        (CASE end_time
              WHEN < NOW() THEN 1
              ELSE 0
         END) AS game_over
   FROM GameTimes
   ORDER BY start_time
) 
ORDER BY game_over

因为你没有提供足够的关于你的桌子的信息(即,实际上是什么时间格式),我不能保证这会起作用 - 特别是与NOW()的比较 - 但它在至少让你走上正轨。