我有一个存储有关某些事件的信息的表。
我想列出这些事件,但我希望即将发生的事件首先按升序显示,而过去的事件按降序显示在下方。
我可能想做这样的事情:
(SELECT * FROM events WHERE date > NOW() ORDER BY date ASC)
UNION
(SELECT * FROM events WHERE date < NOW() ORDER BY date DESC)
我检查了 MySQL 文档,发现 UNION 通常适用于无序的行集,因此对每个 SELECT 进行排序是毫无用处的。UNION ALL 似乎都没有完成这项工作。
在谷歌搜索了一下之后,我知道如何根据 SELECT 生成的行对行进行排序,但是,我仍然不知道如何按不同的顺序按同一列对它们进行排序。
我想我可以很好地执行两个 SELECT,一个用于即将发生的事件,一个用于过去的事件。但我真的想知道是否有可能只用一个查询来做到这一点。
你有什么可以建议的吗?