我想知道如何根据我当前选择的行从mysql数据库中选择下一行和上一行。
我在SO How to get next/previous record in MySQL?上发现了这个问题,但在这种情况下,select是根据引用中较高和较低的id完成的。我想使用更早或更晚的时间戳而不是ids。
答案 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)替换为您要在之后找到下一条记录的时间戳。