Mysql用前一条记录的值更新一条记录

标签 mysql

我有下表,我想做的是更新,例如,RefIDs 3-14 具有与先前值相同的状态值“已添加”。我想这样做直到它达到下一个完成值。因此,当它遇到“已添加”时,它会用“已添加”更新下面所有具有空值的行,直到它到达下一个具有已填充状态的 RefID,然后更新下一批值。这可以做到吗?任何帮助将不胜感激。我希望它是动态的,因为我不想手动更新 Status = "Added",其中 RefID 为 3。

RefID Status<br/>

    1 Null
<br/> <ul>2 Added</ul><br/> <ul>3 Null</ul><br/> <ul>4 Null</ul><br/> <ul>5 Changed</ul><br/> <ul>6 Null</ul><br/> <ul>7 Null</ul>

我想实现的是这样的:


RefID Status<br/>

    1 Null
<br/> <ul>2 Added</ul><br/> <ul>3 Added</ul><br/> <ul>4 Added</ul><br/> <ul>5 Changed</ul><br/> <ul>6 Changed</ul><br/> <ul>7 Changed</ul>

最佳答案

试试这个查询 -

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

关于Mysql用前一条记录的值更新一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9497754/

相关文章:

.net - MySQL 连接器多个服务器不同的端口

php - 存储代码 i mysql

html - 如何使用 Perl 向网页添加图形?

mysql - 获取同一表中列中具有匹配值的行

c# - 使用 NHibernate 加密和解密数据

MySQL - 从具有引用 ID 的行中查找值

php - 反转多对一层次结构

mysql - mysql中整数数组的最小存储?

php - 有没有办法在 SQL 查询中执行条件逻辑?

javascript - res.map() 不是一个函数,其中 res 是一个数组对象