关于MySqL数据库查询当前数据的上一条和下一条数据

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/w252064/article/details/79925017

这里写图片描述
如上图所示第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

运行效果:
这里写图片描述

以上就是这个问题的解决方法,希望对您有所帮助!

展开阅读全文

没有更多推荐了,返回首页