我已经在我的管理表中添加了新列。我想用生效日期列填充修订列。

        ALTER TABLE home.prod ADD revision int;


修订版本号将从100开始并以1递增。修订版本将基于生效日期。因此,最旧的eff_date将获得100,然后最旧的eff_date将获得101,依此类推。

          Eff date 1/1/2012 – Revision 100
          Eff date 1/1/2013 – Revision 101
          Eff date 7/1/2014 – Revision 102
          Eff date 1/1/2015 – Revision 103


像这样的声明-

          revision =100
          UPDATE prod.admin
          SET revision= revision+ 1
          WHERE eff_date = /'

最佳答案

在MySQL中,您可以执行

UPDATE prod.admin
CROSS JOIN (select @rev := 99) r
SET revision = (@rev := @rev + 1)
ORDER BY eff_date asc

10-06 09:49