选择多个日期的mysql日期查询
我需要一个类似于选择多个日期的mysql日期查询,mysql,Mysql,我需要一个类似于 SELECT datetime FROM blog WHERE UNIX_TIMESTAMP(datetime) < '".($date_string_in_seconds +1000)."' ORDER BY datetime DESC 但不是返回小于参数中给定日期的最新日期,而是必须返回: -参数中给出的具有确切日期的记录 -如果存在,则为最早时间戳高于参数的时间戳 -如果存在,则为最新时间戳小于上述查询返回的参数的时间戳 换句话说,它应该返回给定的日期以及该日期之
SELECT datetime FROM blog WHERE UNIX_TIMESTAMP(datetime) < '".($date_string_in_seconds +1000)."' ORDER BY datetime DESC
但不是返回小于参数中给定日期的最新日期,而是必须返回:
-参数中给出的具有确切日期的记录
-如果存在,则为最早时间戳高于参数的时间戳
-如果存在,则为最新时间戳小于上述查询返回的参数的时间戳
换句话说,它应该返回给定的日期以及该日期之后和之前的日期。查询应返回最多三条且至少一条具有有效日期的记录
我需要这些信息作为在博客页面上启用/禁用prev和next entry按钮的基础,目前通过两个单独的查询获取信息。
我怀疑有更好的办法。通过一个查询就可以做到这一点吗
SELECT datetime
FROM (
SELECT datetime
FROM blog
WHERE datetime < FROM_UNIXTIME($date)
ORDER BY
datetime DESC
LIMIT 1
) p
UNION ALL
SELECT datetime
FROM blog
WHERE datetime = FROM_UNIXTIME($date)
UNION ALL
SELECT datetime
FROM (
SELECT datetime
FROM blog
WHERE datetime > FROM_UNIXTIME($date)
ORDER BY
datetime
LIMIT 1
) n