优秀的编程知识分享平台

网站首页 > 技术文章 正文

Mysql获取本条记录的上一条和下一条记录

nanyue 2024-10-27 11:27:50 技术文章 2 ℃

有时候我们页面要实现显示:上一篇下一篇的功能,但是我们的文章ID却不是1,2,3,4…的模式编下去的,而是会跳跃

只会保证大小顺序,那么怎么办呢,这里提供两种思路:

1、给定一个字段保存序号

我们可新增一个字段来保存文章的序号,这样子我们就可以直接按以前的习惯来读取上一篇下一篇,建立索引

后效率会很高,但是这种方法的弊端就是维护起来比较麻烦,要确保这个序号不冲突,这个其实就相当于主键了,

如果要追求查询效率的话可以用这种方法。

2、获取最靠近该id的两条记录

如下sql,我们用max函数和min函数就可实现,只不过效率没有第一种方式高,我们页面显示的时候需要异步查询,或者说放入redis缓存也可的。

  1. select id,title as title,1 as type from topic where id = (select max(id) from topic where id <701085131963629568 and menuid=697853733811257344)
  2. UNION
  3. select id,title as title,2 as type from topic where id = (select min(id) from topic where id >701085131963629568 and menuid=697853733811257344)


最近发表
标签列表