我有一个如下所示的表格:
table :水果
------------
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
这样之前的 1 号将变成 601,2 号将变成 602。有什么想法吗?谢谢
最佳答案
只使用+
怎么样?
UPDATE fruits
SET num = num + 600;
(在您的示例中,您似乎想要 + 620
而不是 + 600
。)
关于mysql:用与前一行相同的数字更新增量序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58229674/