使特定记录到顶部,后续行应根据最接近的最高记录数进行排序

时间:2016-03-03 02:14:40

标签: mysql

我有一份生日庆祝者名单,我想根据我的标题所示显示,例如:

+-------------------------------------+------------+
| parties_name                        | birthday   |
+-------------------------------------+------------+
| John Doe Lee                        | 2016-02-15 |
| Lee Doe John                        | 2016-02-17 |
| Jane Doe Lee                        | 2016-02-18 |
| Spongebob Squarepants               | 2016-02-19 |
| Sandy Cheeks                        | 2016-02-01 |
| Squidward Tentacles                 | 2016-02-02 |
| Patrick Starfish                    | 2016-02-03 |
+-------------------------------------+------------+

假设记录顶部的人是当前的生日庆祝者,而底层人物是下一个庆祝者,最后一行是前一个庆祝者。没有使用UNION或UNION ALL的任何建议?谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

最简单的解决方案可能是:

SELECT *
  FROM Birthdays
  ORDER BY CASE WHEN Birthday >= UTC_DATE THEN 1 ELSE 2 END ASC

更新:我们可以在1个查询中执行此操作:

struct

请查看SQL Fiddle