關於MySqL資料庫查詢當前資料的上一條和下一條資料
阿新 • • 發佈:2019-01-24
如上圖所示第14行資料的上一條和下一條,id都不是連續的,因此意圖通過id-1或者id+1是肯定行不通的,那麼怎麼辦呢?其實也簡單就是查詢比id=14小的元素中的最大值,比id=14大的元素中的最小值。
select * from tb_user where id in
(select
case
when SIGN(id-14)>0 THEN MIN(id)
when SIGN(id-14)<0 THEN MAX(id)
ELSE id
end
from tb_user
GROUP BY SIGN(id-14)
ORDER BY SIGN(id-14)
)
ORDER BY id
執行效果:
select * from tb_user where id in
(select
case
when SIGN(id-14)>0 THEN MIN(id)
when SIGN(id-14)<0 THEN MAX(id)
end
from tb_user
where id !=14
GROUP BY SIGN(id-14)
ORDER BY SIGN(id-14)
)
ORDER BY id
執行效果:
以上就是這個問題的解決方法,希望對您有所幫助!