如何根据时间戳获取mysql中的下一个/上一个记录

时间:2013-07-10 21:56:43

标签: php mysql

我想知道如何根据我当前选择的行从mysql数据库中选择下一行和上一行。

我在SO How to get next/previous record in MySQL?上发现了这个问题,但在这种情况下,select是根据引用中较高和较低的id完成的。我想使用更早或更晚的时间戳而不是ids。

2 个答案:

答案 0 :(得分:7)

没有理由使用子查询。

下一步:

SELECT * FROM `my_table`
WHERE `the_timestamp` > 123456
ORDER BY `the_timestamp` ASC
LIMIT 1

<强>上一个:

SELECT * FROM `my_table`
WHERE `the_timestamp` < 123456
ORDER BY `the_timestamp` DESC
LIMIT 1

答案 1 :(得分:0)

根据您链接的文章,您可以使用:

SELECT *
FROM `my_table`
WHERE `the_timestamp` = (
    SELECT MIN(`the_timestamp`)
    FROM `my_table`
    WHERE `the_timestamp` > 1373493634
);

它的格式是为了便于阅读。将我使用的时间戳(1373493634)替换为您要在之后找到下一条记录的时间戳。