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;
