您的位置:首页 > 数据库 > MySQL

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

2016-06-21 11:29 471 查看
今天测试有一个奇葩的需求:

按客户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的值 每次执行的时候很可能是不同的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: