今天测试有一个奇葩的需求:
按客户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的值 每次执行的时候很可能是不同的