mysql - 如何在不选择整个结果集中的情况下获取结果集中的 "next row"和 "previous row"?

标签 mysql sql database

有没有正确的方法来做到这一点:

ID | name
 1 | aa
 4 | bb
 6 | dd
 9 | ee

ID 是具有自动增量的主索引...缺少的索引已被 SQL 删除,因此有一些空格

如果我在 page?ID=4 中导航,我想使用相同的查询获取上一行(ID 为 1)和下一行(ID 为 6)(已添加:)

有没有办法在不选择/遍历整个结果集的情况下做到这一点?

提前致谢!

最佳答案

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 */

关于mysql - 如何在不选择整个结果集中的情况下获取结果集中的 "next row"和 "previous row"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10104146/

相关文章:

mysql - 当 MySQL 行更新时,如何防止时间戳列更新?

php - sprintf(): Too few arguments是什么意思

带有和不带有单词边界的文本中的mysql搜索查询

sql - 返回最新的 'streak' 数据行

php - MySql 查询在 php 中不起作用

sql - SQL中用IF语句替换CASE语句

mysql - 在 mysql 5.7 中转换 rank() over (partition ....

mysql - 我将如何构建此数据库以实现功能?

sql - 插入多行Qt Quick Local Storage?

sql - 合并两个不同时间的数据表 preferred in access