免责声明:这不是重复的问题。发布前我有研究

mysql - 如何在MySQL中将零值替换为先前的非零值?-LMLPHP

红色圆圈中的值应为“ 2”,因为先前的非零值是数字2。如何在mysql更新查询中做到这一点?如您所见,还有其他具有相同零值的行需要具有先前的非零值。

最佳答案

您可以使用内联查询:

select
    pk,
    case when val1 = 0
        then (select val1 from mytable t1 where t1.pk < t.pk and t1.val1 != 0 order by pk desc limit 1)
        else val1
    end val1,
    val2,
    val3,
    received_date
from mytable t

关于mysql - 如何在MySQL中将零值替换为先前的非零值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59299334/

10-09 00:58