SQL查詢當前資料以及上一條和下一條三條記錄

2021-08-11 04:04:17 字數 1068 閱讀 2677

想查詢某個表當前資料以及上一條和下一條的記錄,網上找了一下解決辦法都不如意,按網上的方法可以查詢出三條資料,但是當查詢的這條資料沒有上一條或下一條記錄時就不行了。現在我把解決問題的sql語句放上 :

理一下思路,明確的查詢三條語句:

select * from 表名 where id in(當前id的前乙個id值,id值,當前id的後乙個id值)

在這裡說一下為什麼是「當前id的前乙個id值」而不是「id值-1」,因為當前id的前乙個id值不一定是比它小乙個值,比如當前id值是6,那前乙個id不一定是5,可能是4或者3。

現在說一下「當前id的前乙個id值」sql怎麼寫,查詢比當前id值小的所有記錄,然後id按倒序排序取第一條,sql:

select * from 表名 where id in(當前id的前乙個id值,id值,當前id的後乙個id值)

當前id的後乙個id值,sql:

select id from 表名 where id>id值 order by id limit 1

整體的sql:

select * from 表名 where id in((select id from 表名 where idid值 order by id limit 1))

如果查出的三條記錄需要按id排序,可以在語句後面加是order by,sql:

select * from 表名 where id in((select id from 表名 where idid值 order by id limit 1)) order by id

例子:

select * from ures where id in((select id from ures where id<4 order by id desc limit 1),4,(select id from ures where id>4 order by id limit 1)) order by id

SQL查詢當前資料上一條和下一條的記錄

id是指當前資料news id引數 方法一 string presql select top 1 from news where news id id order by news id desc string nextsql select top 1 from news where news id ...

Mysql 查詢當前資料上一條和下一條的記錄

獲取當前檔案上一條與下一條記錄的原理是上一條的sql語句,從news表裡按從大到小的順序選擇一條比當前id小的新聞,下一條的sql語句,從news表裡按從小到大的順序選擇一條比當前id大的新聞。如果id是主鍵或者有索引,可以直接查詢 方法1 sql view plain copy 1.select ...

Mysql 查詢當前資料上一條和下一條的記錄

獲取當前檔案上一條與下一條記錄的原理是上一條的sql語句,從news表裡按從大到小的順序選擇一條比當前id小的新聞,下一條的sql語句,從news表裡按從小到大的順序選擇一條比當前id大的新聞。如果id是主鍵或者有索引,可以直接查詢 方法1 1.select from table a where i...