mysql数据库查上一条下一条记录_数据库查询上一条和下一条数据sql

#业务需求:

当前有一个文章列表按照时间排序,点击一条查看详情时,详情页面要显示当前文章的前一条和后一条数据。

由于功能简单,两条数据有共通的地方,想用一条sql查出两条数据,添加一个orderposition标识前一条(front)、后一条(back)!

##功能实现sql(Oracle):

```sql

with t as (

select t.,rownum as rn from (

select from tablename t

where 1=1 —这里写查询条件

order by t.createtime desc

) t

)

select t.*,'back' as orderposition from t where t.rn=(select t.rn+1 from t where t.id = #{当前文章的id})

union all

select t.*,'front' as orderposition from t where t.rn=(select t.rn-1 from t where t.id = #{当前文章的id})

```

##功能实现sql(Mysql):

```sql

(select a.*,'front' orderposition from article a where edit_date >= (select edit_date from article where id = 15) order by a.edit_date ,id desc limit 1,1 )

union all

(select a.*,'back' orderposition from article a where edit_date <= (select edit_date from article where id = 15) order by a.edit_date desc,id limit 1,1);

```

#总结:

也没什么总结的,就这样了,好好学习技术,成为大牛!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值