提问者:小点点

MySQL.如何更新上次检索的记录


我想对一个MySQL表进行顺序读取,而不需要一个标识符。另外,我想给每个记录的第一列分配一个相关的数字。更新时应使用哪些说明?

太感谢你了。


共1个答案

匿名用户

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