MYSQL获取更新行的主键ID(更新返回所在行)

1 SET @update_id := 0;
2 UPDATE some_table SET row = 'value', id = (SELECT @update_id := id)
3 WHERE some_other_row = 'blah' LIMIT 1; 
4 SELECT @update_id;

声明一个用户变量 @update_id ,之后在update数据时要多更新一个字段,就是将当前主键值更新为当前主键值(其实就是没更新),更新主键字段并不是目的,只是为了将当前主键值赋值给@update_id,就是这句: ( SELECT @update_id := id )。 

更新了多条记录也可以用下面的方式

SET @uids := null;
UPDATE footable
   SET foo = 'bar'
 WHERE fooid > 5
   AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );
SELECT @uids;
posted @ 2020-11-10 20:24  anakinf  阅读(2196)  评论(0编辑  收藏  举报