sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man ID for den sidst opdaterede række i MySQL?

Jeg har fundet et svar på dette 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;

REDIGER af aefxx

Denne teknik kan udvides yderligere for at hente ID'et for hver række, der er påvirket af en opdateringssætning:

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

Dette vil returnere en streng med alle ID'er sammenkædet med et komma.



  1. Databasesikkerhed 101:Sikkerhed i Open Source-databaser

  2. SQLite JSON_GROUP_OBJECT()

  3. 5 kraftfulde funktioner i Microsoft Access

  4. Skal en MAMP returnere ::1 som IP på localhost?