我有一张表,我想展示一些事件。我想在将来按升序排列我的事件,而按照降序排列我的事件。我怎样才能做到这一点与一个查询?订购一个字段,包括ASC和DESC
我目前的订单
Dec 23
Nov 10
Nov 04
Sep 12
Aug 01
Jul 23
顺序我想
Nov 4 ** changed place
Nov 10
Dec 23 ** changed place
Sep 12
Aug 01
Jul 23
提前非常感谢。
我有一张表,我想展示一些事件。我想在将来按升序排列我的事件,而按照降序排列我的事件。我怎样才能做到这一点与一个查询?订购一个字段,包括ASC和DESC
我目前的订单
Dec 23
Nov 10
Nov 04
Sep 12
Aug 01
Jul 23
顺序我想
Nov 4 ** changed place
Nov 10
Dec 23 ** changed place
Sep 12
Aug 01
Jul 23
提前非常感谢。
你问从当前日期的距离进行排序:
SELECT *
FROM table
ORDER BY IF(date_field >= NOW()),0,1), ABS(DATEDIFF(NOW(), date_field))
请使用代码格式并向您的代码专用答案添加解释。 – DanFromGermany 2014-09-23 13:10:33
这将交织结果,而不是让它们分开。 – barryhunter 2014-09-23 14:30:44
尽管它构成了答案的一部分,但可以通过IF(eventDate> = NOW()),0,1)ASC,days ASC'来首先将它们分离出来,然后按距离排序。 – barryhunter 2014-09-23 14:33:15
请与我们分享您已经尝试了什么。 – 2014-09-23 13:04:11
你能解释一下我想要的命令吗?未来的升级和过去的desc?不明白.. – 2014-09-23 13:05:48
正如您在示例第一个示例中所看到的那样,使用普通的“ORDER BY eventDate DESC”从日期数据库中查询日期,这意味着日期只是按降序显示。我希望将来的日期按升序显示 - WHERE eventDate> = NOW()ORDER BY eventDate ASC' - 以及过去显示的日期降序 - WHERE eventDate
wally
2014-09-23 13:10:42