MySQL.如何更新检索到的最后一条记录



我想在没有单个标识符的情况下对MySQL表进行顺序读取。此外,我想为每条记录的第一列分配一个相关的编号。UPDATE应使用哪些说明?

非常感谢。

使用多表更新语法(即联接(和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)

最新更新