例如,如果我有
Event
------
id
start_date
end_date
...
我可以使用:
SELECT * FROM event WHERE start_date > NOW()
但是我想在现在之前使用start_date包含最近的一个事件..所以我将其修改为:
(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,因为我的实际查询更复杂的连接,我宁愿不重复。有没有更好的方法来编写该查询?
答案 0 :(得分:0)
你可以这样做:
SELECT * FROM event WHERE start_date >= (
SELECT MAX(start_date) FROM event WHERE start_date < NOW()
)