个人随笔
目录
Mysql获取本条记录的上一条和下一条记录
2020-05-26 23:36:33

有时候我们页面要实现显示:上一篇下一篇的功能,但是我们的文章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)
 1143

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2