一尘不染

按顺序插入表格

sql

如何以以下方式将值插入表(MySQL):
在表的所有行上,按ID列(PK)的顺序,在“ num”列中插入递增数字?
例如,如果表有3行,其ID为1,5,2,我希望ID 1获得num = 1,ID 2获得num = 2,ID 5获得num = 3。

编辑 我将解释为什么(我认为)需要这样做:
我试图将表中的列拆分为具有1对1关系的单独表。我以为我可以按ID的顺序获取所有值,然后将它们插入具有自动递增PK的新表中。那么我知道,按照ID的顺序,原始表中新引用列的值将是自动递增的数字。因此,我想按此顺序插入它们。我希望这是清楚的。


阅读 237

收藏
2021-03-10

共1个答案

一尘不染

我找到了答案。这很简单:

SET @c=0;
UPDATE myTable SET num = (@c:=@c+1) ORDER BY id
2021-03-10