Mysql查询最新日期之前或(如果为空则)之后的第一个

时间:2015-01-19 15:31:05

标签: mysql sql subquery

我试图在给定日期之前检索具有最新日期的条目,如果它不存在,则在该给定日期之后最快地进行。

我尝试使用谷歌搜索,但我无法找到这种情况

2 个答案:

答案 0 :(得分:2)

您可以使用order bylimit

执行此操作
select t.*
from table t
order by (datecol < @date) desc,
         (case when datecol < @date then datecol end) desc,
         datecol asc
limit 1;

答案 1 :(得分:0)

在给定日期之前的最新消息 -

select * from table where date_column<given_date order by date_column desc limit 1

现在检查结果,如果没有行返回,则在给定日期后执行以下查询:#/ p>

select * from table where date_column>given_date order by date_column limit 1