关于MySqL数据库如何查询当前数据的上一条和下一条数据的方法介绍
如上图所示第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
运行效果:
以上就是这个问题的解决方法,希望对您有所帮助!