mysql更新一条记录,Mysql用前一条记录中的值更新一条记录

I have the following table, and what I'm trying to do is to update, for example, RefIDs 3-14 with the same Status value "Added" as the previous value. I want to do this until it reaches the next completed value. So when it encounters "Added", it updates all rows below that have a null with "Added" until it reaches the next RefID that has a populated Status, and subsequently updates the next batch of values. Can this be done? Any help would be greatly appreciated. I'm looking for this to be dynamic, as I don't want to manually update, say, Status = "Added" where RefID is 3.

RefID Status1 Null

2 Added

3 Null

4 Null

5 Changed

6 Null

7 Null

What I want to achieve is this:

RefID Status1 Null

2 Added

3 Added

4 Added

5 Changed

6 Changed

7 Changed

解决方案

Try this query -

UPDATE refs_table t1

JOIN (

SELECT RefID, @s:=IF(Status IS NULL, @s, Status) Status

FROM (SELECT * FROM refs_table ORDER BY RefID) r,

(SELECT @s:=NULL) t

) t2

ON t1.RefID = t2.RefID

SET t1.Status = t2.Status

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值