选择多个日期的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