首页 > 解决方案 > mysql:更新增量序列号与前一行相同的数字

问题描述

我有一张像这样的表:

表:水果

------------
num | fruit
------------
1   | apple
1   | banana
2   | orange
2   | apple
2   | guava
3   | grape
3   | strawberry
4   | blueberry
4   | watermelon
4   | honeydew
4   | apple

我想将序列更新为我选择的数字,例如从 600 开始,我尝试过这样的事情:

UPDATE fruits
JOIN (SELECT @rank := 600) r
SET num=@rank:=@rank+1;

它变成:

------------
num   | fruit
------------
601   | apple
602   | banana
603   | orange
604   | apple
605   | guava
606   | grape
607   | strawberry
608   | blueberry
609   | watermelon
610   | honeydew
611   | apple

我想要的结果是:

------------
num   | fruit
------------
621   | apple
621   | banana
622   | orange
622   | apple
622   | guava
623   | grape
623   | strawberry
624   | blueberry
624   | watermelon
624   | honeydew
624   | apple

这样之前的 num 为 1 将变为 601,而 2 将变为 602。知道吗?谢谢

标签: mysqlsql

解决方案


只是使用怎么样+

UPDATE fruits
    SET num = num + 600;

(在您的示例中,您似乎想要+ 620而不是+ 600。)


推荐阅读