比如有这么一个需求,获取当前文章记录数据并且返回当前记录的上一条记录ID和下一条记录ID,用于前端文章详情页的上一篇和下一篇文章获取,其实也特别的简单,顺便记录一下!
简略数据源如下:
查询分析
要获取当前查询记录ID为1000的记录的上一条记录ID: 999,可以在ID小于1000的范围内获取ID最大值;获取下一条记录ID: 1001,可以在大于1000的范围内获取ID最小值,那么这个事件也就算是完成了!
注意:获取上一条记录ID和下一条记录ID的临界点就是当前查询记录ID为1000的记录哦~
获取上一条记录ID
1
2
3
4
5
6
7
|
mysql> select max(id) as last_id from article where id < 1000;
+---------+
| last_id |
+---------+
| 999 |
+---------+
1 row in set (0.00 sec)
|
获取下一条记录ID
1
2
3
4
5
6
7
|
mysql> select min(id) as next_id from article where id > 1000;
+---------+
| next_id |
+---------+
| 1001 |
+---------+
1 row in set (0.01 sec)
|
获取当前记录数据包含上一条和下一条记录ID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
mysql> select
-> id,
-> title,
-> (select max(id) from article where id < 1000) as last_id,
-> (select min(id) from article where id > 1000) as next_id
-> from
-> article
-> where
-> id = 1000\G
*************************** 1. row ***************************
id: 1000
title: HelloWorld 🎉🎉🎉
last_id: 999
next_id: 1001
1 row in set (0.00 sec)
|