我有一个简单的带有日期列的事件表。我可以很容易地选择接下来的n个事件(假设n=3):
SELECT * FROM events WHERE `date` > NOW() ORDER BY `date` LIMIT 3
然而,并非所有人都会有3个事件在未来。在这种情况下,我想返回那些在未来可用的,并完成与今天最接近的丢失。e、 例如,如果今天是12-04日,则以下日期标有 *
应从整个列表中选择:
10-03
20-03
30-03 *
10-04 *
20-04 *
虽然我可以很容易地检查第一个查询的结果以找出返回了多少行,并在必要时构建另一个查询以查找过去的日期,但我很想知道是否有一种方法可以在单个查询中获取这些行。
1条答案
按热度按时间baubqpgj1#
可以在中使用多个键
order by
. 所以:如果您的表很大,则从近期和近期获得三个事件并将它们结合起来可能会更快: