SQL – 找到给定特定WHERE子句的下一行和前一行

我有一个名为bb_posts的 MySQL表,由bbPress论坛使用.它有一个称为topid_id的自动增量字段,另一个名为topic_poster的字段.

我试图写一个功能,找到“同一作者的下一篇文章”.因此,例如,说用户位于显示主题123的特定页面上.如果您执行SQL查询

SELECT *
FROM `bb_topics`
WHERE `topic_poster` = 5
ORDER BY `topic_id` ASC

这可能返回以下行:

topic_id    topic_poster
6           5
50          5
123         5
199         5
2039        5

我想做的是编写一个返回这两行的SQL查询

topic_id    topic_poster
50          5
199         5

这将是行的第一行前面的topic_id为123,行后面的行.

如果在一个查询中太难做到这一点,将其分解成两个查询是绝对可行的

我想避免执行整个SQL查询(“SELECT * FROM bb_topics WHERE topic_poster = 5”),并循环查看结果,因为结果集有时是巨大的.

这可能吗?

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03