Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como obter o ID da última linha atualizada no MySQL?


Eu encontrei uma resposta para este problema :)
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;

EDITAR por aefxx

Essa técnica pode ser expandida ainda mais para recuperar o ID de cada linha afetada por uma instrução de atualização:
SET @uids := null;
UPDATE footable
   SET foo = 'bar'
 WHERE fooid > 5
   AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );
SELECT @uids;

Isso retornará uma string com todos os IDs concatenados por uma vírgula.