在排序MySQL中日期的ORDER BY时,我试图在今天之后的日期对ASC进行排序,而对于今天之前的日期,我尝试对ASC进行排序。按照IF和排序日期排序的MySQL
我在做类似的东西:
SELECT * FROM test ORDER BY IF(created >= NOW(), created, 1) ASC, created DESC
这让我有点期望的结果:
ID CREATED
8 May, 10 2014 11:15:00+0000
7 May, 03 2014 20:47:00+0000
5 May, 02 2014 14:00:00+0000
4 April, 30 2014 17:41:00+0000
3 April, 30 2014 17:00:00+0000
1 April, 21 2014 03:30:00+0000
6 March, 23 2014 12:00:00+0000
9 May, 20 2014 20:45:00+0000
10 July, 02 2014 20:30:00+0000
2 June, 30 2015 11:16:00+0000
今天之前是DESC,今天之后ASC。但是,我想在结果顶部看到ID为9,10,2的块。
任何想法如何做到这一点表示赞赏。
测试链接:http://www.sqlfiddle.com/#!2/4667b/2/0
是否有任何特定的逻辑背后9,10,2顶部,因为他们是今天之后。 –
只为了订购。这是为了事件。我想要显示什么是提前而不是后来,但也显示从最近传递到最古老的顺序。 – maximo