日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

根据当前记录获取前一条与下一条记录常用 sql语句

發布時間:2025/4/5 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 根据当前记录获取前一条与下一条记录常用 sql语句 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

1.oracle實現主要是用分析函數 lag與lead

SELECT *
FROM (SELECT
??????? id,
??????? LAG(ID)
??????? OVER (
????????? ORDER BY ID ) prevId,
??????? LEAD(ID)
??????? OVER (
????????? ORDER BY ID ) nextId
????? FROM table_name)
WHERE ID = #{id}

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語句(如果有其他的查詢條件記得加上other_conditions以免出現不必要的錯誤):

select * from table_a where id = (select id from table_a where id > {$id}?[and other_conditions]?order by id asc limit 1) [and other_conditions];

方法二:

查詢上一條記錄的SQL語句((如果有其他的查詢條件記得加上other_conditions以免出現不必要的錯誤))

select * from table_a where id = (select max(id) from table_a where id < {$id} [and?other_conditions]) [and?other_conditions];

查詢下一條記錄的SQL語句(如果有其他的查詢條件記得加上other_conditions以免出現不必要的錯誤):

select * from table_a where id = (select min(id) from table_a where id > {$id} [and?other_conditions]) [and?other_conditions];

3.mssql 實現

上一條記錄的SQL語句:

select?top 1 * from ?table_name?where newsid<id order by newsid DESC

下一條記錄的SQL語句:

select top 1 * from table_name ? where newsid>id order by newsid ASC

語句中的id為當前記錄數據id

轉載于:https://my.oschina.net/VILLE/blog/866339

總結

以上是生活随笔為你收集整理的根据当前记录获取前一条与下一条记录常用 sql语句的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。