例如,如果我有
Event
------
id
start_date
end_date
...
我可以用:
SELECT * FROM event WHERE start_date > NOW()
但我还想在 start_date BEFORE now 中包含最近的一个事件。所以我将其修改为:
(SELECT * FROM event WHERE start_date < NOW() ORDER BY start_date DESC LIMIT 1)
UNION ALL
(SELECT * FROM event WHERE start_date > NOW())
这给了我想要的结果,但我想知道是否有更直接的方法来完成这个,也许不需要使用额外的 UNION 和 SELECT,因为我的实际查询对连接更复杂,我不想重复它。有没有更好的方法来编写该查询?