假设我有ID 3,4,7,9的记录,我希望能够通过下一个/上一个链接导航从一个到另一个.问题是,我不知道如何获取最近的更高ID的记录.
因此,当我有一个ID为4的记录时,我需要能够获取下一个现有记录,这将是7.查询可能看起来像
SELECT * FROM foo WHERE id = 4 OFFSET 1
Run Code Online (Sandbox Code Playgroud)
如何在不获取整个结果集并手动迭代的情况下获取下一个/上一个记录?
我正在使用MySQL 5.
我已经厌倦了一些SQL,我有几行数据,我想从前一行中减去一行并让它一直重复.
所以这是表:
CREATE TABLE foo ( id, length )
INSERT INTO foo (id,length) VALUES(1,1090) INSERT INTO foo (id,length) VALUES(2,888) INSERT INTO foo (id,length) VALUES(3,545) INSERT INTO foo (id,length) VALUES(4,434) INSERT INTO foo (id,length) VALUES(5,45)
我希望结果显示第三列称为差异,这一行是从下面的一行减去,最后一行从零减去.
+------+------------------------+ | id |length | difference | +------+------------------------+ | 1 | 1090 | 202 | | 2 | 888 | 343 | | 3 | 545 | 111 | | 4 | 434 | 389 | | 5 | 45 | 45 |
我尝试过自我加入,但我不确定如何限制结果,而不是让它自行循环.我不能依赖于给定结果集的id值是顺序的,所以我没有使用那个值.我可以扩展架构以包含某种顺序值.
这就是我尝试过的: …