sql批量修改某一列的值

需求描述

将图片中的红框框起来的数据修改成1234。即变得有序。

在这里插入图片描述

问题

在进行更新时,由于给每一列添加了唯一索引,所以在更新时不能直接就使用update去更新每一列,这样会出现重复,数值,导致更新失败。
具体是什么情况呢。下面解释一下。

直接update不可行的原因。

很简单的我们可以想到的就是使用
update [表名] set [列名] = [值] where [条件],
然后多写几条,让它更新。但是由于唯一索引的存在,这样更新会失败。
在这里插入图片描述
这是由于更新时,如果我们想把5变成4的时候,4此时还存在,由于唯一索引的存在,就导致插入失败。
所以在更新的时候,我们可以手动避免这个问题。也就是按顺序更新,
3—>2 4—>3 5---->4 这样就可以避免唯一索引的错误
在这里插入图片描述
但是这样会很麻烦,首先需要,选择对要修改的行,使得代码太多,容易出现错误,又要一一的匹配,如果下次需求必须为倒叙更新呢?这样就会更麻烦。

解决办法 case when

解决办法呢便是使用sql中的 case when 语句
在这里插入图片描述
使用这个方法,不管是倒序、正序都可正常修改,并且代码量也很少,更加的简洁。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值