有没有合适的方法来做到这一点:
ID | name
1 | aa
4 | bb
6 | dd
9 | ee
ID 是具有 auto_increment 的主索引...缺少的索引已被 SQL 删除,因此有一些空格
如果我在 page?ID=4 中导航,我想使用相同的查询获取上一行(ID 为 1)和下一行(ID 为 6)(添加:)
有没有办法在不选择/遍历整个结果集的情况下做到这一点?
先感谢您!
我会做这样的事情(以前的记录):
SELECT * FROM table
WHERE id < @id
ORDER BY id DESC
LIMIT 1
这应该是数据库引擎优化查询的足够信息。
SELECT * from table where `ID` > 4 ORDER BY `ID` ASC LIMIT 1 /* next */
SELECT * from table where `ID` < 4 ORDER BY `ID` DESC LIMIT 1 /* previous */
试试看-
(SELECT * FROM table_name
WHERE id < 4
ORDER BY id DESC
LIMIT 1)
union
(SELECT * FROM table_name
WHERE id > 4
ORDER BY id ASC
LIMIT 1)