sql >> Databasteknik >  >> RDS >> Mysql

Hur får man ID för den senast uppdaterade raden i MySQL?

Jag har hittat ett svar på detta problem :)

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;

REDIGERA av aefxx

Denna teknik kan utökas ytterligare för att hämta ID:t för varje rad som påverkas av en uppdateringssats:

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

Detta kommer att returnera en sträng med alla ID:n sammanlänkade med ett kommatecken.



  1. Kul med Djangos nya Postgres-funktioner

  2. Migrera Amazon RDS (MySQL eller MariaDB) till en lokal server

  3. Hur kan jag lösa ORA-00911:fel med ogiltiga tecken?

  4. Jämföra datum i Oracle SQL