【发布时间】:2014-09-17 13:48:02
【问题描述】:
我想对记录进行如下排序:
- 未来/现在的事件 ASC
- 过去的事件 DESC
所以首先是今天,然后是明天,直到没有更多的未来记录。 然后我想显示过去的事件,但最先显示最新的。
到目前为止,我已经找到了第一点的解决方案:
ORDER BY (
CASE WHEN ev.StartDate < CURDATE()
THEN 1
ELSE 0
END) ASC, ev.StartDate ASC
但这个查询的问题是所有帖子都是按 ASC 排序的,包括过去的帖子(需要是 DESC)。
如何在CASE 中组合它?
【问题讨论】:
-
您可以使用日期差异并乘以 -1 来更改过去/现在的顺序。