我想知道如何参考我当前选择的行从mysql数据库中选择下一行和上一行。
我在SO上发现了这个问题。如何在MySQL中获得下一个/上一个记录?但在这种情况下,选择是基于来自引用的较高和较低的id来完成的。我想使用较早或较晚的时间戳,而不是id。
没有理由使用子查询。
下一个:
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
根据您链接到的文章,您可以使用:
SELECT *
FROM `my_table`
WHERE `the_timestamp` = (
SELECT MIN(`the_timestamp`)
FROM `my_table`
WHERE `the_timestamp` > 1373493634
);
它的格式是为了可读性。将我使用的时间戳(1373493634)替换为要查找下一条记录的时间戳。