mysql 批量更改符合指定条件的记录的主键为一系列值

今天测试有一个奇葩的需求:

按客户id 去查询消息表,可以确定能查到两条记录,将这两条记录的主键 分别更改为998 和999

例如:表名 message

id       customer_id  ...

59      10010          ....

90      10010          ...


两条记录 不能说没有联系,客户id都是10010,并且即将被update的结果值 也是递增的,但我并没有想到什么更好的办法能写成一条sql语句,就采取一个比较笨的方式,用limit

update message set id = 999 where customer_id = 10010 limit 1;  
update message set id = 998 where customer_id = 10010 and id != 999 limit 1;


回头得想想有没有啥办法 写成函数或者其他的什么的,弄成一条sql语句试试

网上查到的 有用 case then的,但是对当前要求不太合适,因为,查询到的 符合要求的主键 id的值 每次执行的时候很可能是不同的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值