Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie bekomme ich die ID der letzten aktualisierten Zeile in MySQL?

Ich habe eine Antwort auf dieses Problem gefunden :)

SET @update_id := 0;
UPDATE some_table SET column_name = 'value', id = (SELECT @update_id := id)
WHERE some_other_column = 'blah' LIMIT 1; 
SELECT @update_id;

BEARBEITEN von aefxx

Diese Technik kann weiter ausgebaut werden, um die ID jeder Zeile abzurufen, die von einer Update-Anweisung betroffen ist:

SET @uids := null;
UPDATE footable
   SET foo = 'bar'
 WHERE fooid > 5
   AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );
SELECT @uids;

Dies gibt eine Zeichenfolge mit allen IDs zurück, die durch ein Komma verkettet sind.