欢迎访问Ningto's博客

Menu
  • 首页
  • 归档
  • 关于
  • 书签
  • 必应壁纸
  • IT聚合
  • 工具
    • 我的工具列表
    • 我的网盘
    • 必应每日壁纸API
    • Html转Markdown
    • 仙尘光标
Menu

MySql查询前一条后一条记录

最后更新 2021-06-01 17:08:25   阅读量 1108

Table of Contents

  • 1. 方法一
  • 2. 方法二
  • 3. 方法三

这个需求跟文章的上一篇和下一篇导航很相似,根据当前的ID查找最近的上一个和下一个记录,可以根据ID也可以根据其他如时间字段来判断。

如有n条记录ID不是连续的:1,4,6,7,13,查找ID为4的上一个和下一个记录,那分别就是1和6了。

这里有好几种方法,根据实际情况选择合适的。

方法一

上一条:

select * from posts where id = (select max(id) from posts where id < 4)

下一条:

select * from posts where id = (select min(id) from posts where id > 4)

方法二

上一条:

SELECT * FROM posts WHERE id < 4 ORDER BY id DESC LIMIT 1;

下一条:

SELECT * FROM posts WHERE id > 4 ORDER BY id LIMIT 1;

方法三

一次查询搞定

select * from posts 
where ( 
        id = IFNULL((select min(id) from posts where id > 4),0) 
        or  id = IFNULL((select max(id) from posts where id < 4),0)
      )    
(转载本站文章请注明作者和出处:泞途 - ningto.com)

下一篇 – Solution - Find your Unicorn Name - StudioX Project
上一篇 – Python 统计项目代码行数

  1. Database

toningto@outlook.com

标签云

Life Android Javascript Python Windows Product Go Tools Java MQ Qt Node.js Tips Shell Design MongoDB Others Mac Mobile React C/C++ Web Boost Linux IOS Bug Database

推广链接

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

多谢支持,用了好几年,服务很稳定支持多设备!

其他

文章RSS

Copyright © 2016 Welcome To Ningto Blog | 鄂ICP备17003086号-2