使用多表更新语法(即join)和row_number窗口函数
DROP TABLE IF EXISTS T;
CREATE TABLE T
(DATES DATE, TODA INT);
INSERT INTO T VALUES ('2021-04-04',1),('2021-04-05',1);
update t join
(select dates,row_number() over (order by dates) rn
from t) u
on t.dates = u.dates
set toda = rn
where 1 = 1;
select * from t;
+------------+------+
| DATES | TODA |
+------------+------+
| 2021-04-04 | 1 |
| 2021-04-05 | 2 |
+------------+------+
2 rows in set (0.001 sec)