mysql:用与前一行相同的数字更新增量序列号

标签 mysql sql

我有一个如下所示的表格:

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/

相关文章:

c# - 从日期时间字段获取日期 Mysql 查询

sql - 像枢轴一样将行转换为列

java - 按父对象设置的子对象的值对父对象进行排序

MySQL Group By 需要帮助吗

MYSQL关于ROOT用户的安全问题

mysql - 作为(动态)列值的 SQL 查询

mysql - 选择另一个选择框时填充选择框

mysql - 如何将多个表(具有相同的列名)复制到一个新表<SQL>。?

sql - 删除带有警告的重复项

MySQL:选择上个月和前一个月