mysql选择上一条、下一条数据记录

1.表数据结构

选择mysql记录上一条,下一条sql语句

SELECT * FROM user ORDER BY rank ASC
+----+------+---------+
| ID | rank | name    |
+----+------+---------+
|  1 |    1 | admin1  |
|  2 |    2 | admin2  |
|  3 |    3 | admin3  |
|  4 |    4 | admin4  |
|  5 |    5 | admin5  |
|  6 |    6 | admin6  |
|  7 |    7 | admin7  |
|  8 |    8 | admin8  |
|  9 |    9 | admin9  |
| 10 |   10 | admin10 |
| 11 |   11 | admin11 |
| 12 |   12 | admin12 |
+----+------+---------+

2.选择上一行

select * from user where id <3 or id=(SELECT MIN(id) from user) order by id desc limit 1
+----+------+--------+
| ID | rank | name   |
+----+------+--------+
|  2 |    2 | admin2 |
+----+------+--------+
1 row in set (0.00 sec)

3.当id=1时

mysql> select * from user where id <1 or id=(SELECT MIN(id) from user) order by id desc limit 1;
+----+------+--------+
| ID | rank | name   |
+----+------+--------+
|  1 |    1 | admin1 |
+----+------+--------+
1 row in set (0.00 sec)

4.选择下一行

mysql> select * from user where id > 3 OR ID=(SELECT MAX(ID) FROM user) ORDER BY id ASC LIMIT 1;
+----+------+--------+
| ID | rank | name   |
+----+------+--------+
|  4 |    4 | admin4 |
+----+------+--------+
1 row in set (0.00 sec)

5.当id为最大值时

mysql> select * from user where id > 12 OR ID=(SELECT MAX(ID) FROM user) ORDER BY id ASC LIMIT 1;
+----+------+---------+
| ID | rank | name    |
+----+------+---------+
| 12 |   12 | admin12 |
+----+------+---------+
1 row in set (0.00 sec)
时间: 2024-10-05 06:05:28

mysql选择上一条、下一条数据记录的相关文章

上一条下一条方案对比

今天CPU狂飙了一把,分析SQL后揪出真凶: 上一条下一条方案对比,布布扣,bubuko.com

解决Mysql 主键id是UUID的上一页下一页数据翻页,附带SQL

解决id为UUID的上一页下一页数据翻页,把base_course_timetable表换成自己的表就可以了 SELECTbef.* FROM(SELECTt.rownum,t.id FROM( SELECT @rownum := @rownum + 1 AS rownum, base_course_timetable.* FROM ( SELECT @rownum := 0 ) r, base_course_timetable ) t WHEREt.rownum < (SELECTw.rown

平台记录部件上一条/下一条方法

读取数据表中上一条.下一条记录到记录部件中. 实例应用:在窗体功能管理中新增功能:新增数据.上一条.下一条 运行效果: 我们首先新增一条数据,将相关信息录入完整后,再点击"新增数据"按钮,新增第二条数据,一共新增3条数据. 三条数据都新增完成后,我们点击"上一条"."下一条"按钮,将会读取到当前界面显示数据的上一条或下一条.这样我们就可以实现一次性编辑多条数据 原文地址:http://bbs.delit.cn/thread-1091-1-1.ht

Linq-查询上一条下一条

//下一条 int pollid = poll.Where(f => f.PollID < CurrentId).OrderByDescending(o => o.PollID).FirstOrDefault().PollID; //上一条 int pollid = poll.Where(f => f.PollID > CurrentId).OrderByDescending(o => o.PollID).FirstOrDefault().PollID;

MYSQL实现上一条下一条功能

select id from ( select *, (@i:[email protected]+1) as rownum from pre_bet_zhibo,(select @i:=0) as it where link_conent like '%足%' order by title) as t1 where rownum = ( select rownum from ( select *, (@i:[email protected]+1) as rownum from pre_bet_z

在MySQL数据库里用一个SQL语句取得本条记录及其上一条和下一条记录

在做文章页面时,有时候需要在文章下面显示出上一条和下一条记录.如果简单地使用id值加1和减1的方法来做会有缺陷. 各位看官请试想,如果我们删除了中间的某一条和某几条记录呢?那不是取不出来了? 所以,思想是很重要的,嗯.举个例子吧,比如说我有一个名叫XXX的表,里面有唯一的id字段.然后,里面有N条数据呢~~~ 现 在,我们来看看我们的思维.我们是要根据已知ID来找上一条和下一条的,也就是在数据库里相邻的三条记录, 中间那一条是确定的.那既然ID有可能不连续, 那我们就用>和<运算符来吧(要是L

Mysql 查询当前数据上一条和下一条的记录

获取当前文件上一条与下一条记录的原理是上一条的sql语句,从news表里按从大到小的顺序选择一条比当前ID小的新闻,下一条的sql语句,从news表里按从小到大的顺序选择一条比当前ID大的新闻. 如果ID是主键或者有索引,可以直接查找: 方法1: [sql] view plain copy 1.select * from table_a where id = (select id from table_a where id < {$id} order by id desc limit 1); 2

MySQL查询当前数据上一条和下一条的记录

如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from table_a where id = (select id from table_a where id < {$id} [and other_conditions] order by id desc limit 1) [and other_conditions]; 查询下一条记录的SQL语句(如果有其他的

如何在MySQL中查询当前数据上一条和下一条的记录

如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from table_a      where id =          (select id from              table_a where id < {$id} [and other_conditions]              order by id desc limit 1