如何在MySQL中查询当前数据上一条和下一条的记录

如何在MySQL中查询当前数据上一条和下一条的记录,第1张

您好,很高兴为您解答。

方法一:

查询上一条记录的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]

如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~

楼下这样肯定不行 楼主要的是去重 但还有其他的字段 其他的字段可能不重复

我不清楚你有多少字段 比如有一个列是aa 表名是tb

有不明白的随时来问我 希望解决了楼主的问题

select min(aa) aa,id from tb group by id

--改正 你把表名换一下就可以了

select case when bz=1 then id else null end as id,name,money from (

select *,ROW_NUMBER() over (partition by id order by name) bz from tb) aa


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/6652968.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存