sql >> Databasteknik >  >> RDS >> Mysql

Finns det en enda fråga som kan uppdatera ett sekvensnummer över flera grupper?

Du kan använda en annan variabel som lagrar föregående type_id (@type_id ). Frågan är sorterad efter type_id , så varje gång det sker en ändring i type_id , sekvensen måste återställas till 1 igen.

Set @seq = 0;
Set @type_id = -1;

Update `log`
Set `sequence` = If(@type_id=(@type_id:=`type_id`), (@seq:[email protected]+1), (@seq:=1))
Order By `type_id`, `created_at`;


  1. hur man lägger till timmar och minuter i curdate mysql

  2. MYSQL-utdata i trädformat ELLER Lägger till nivå (förälder-barn)

  3. Hur man gör en Full Outer Join i MySQL

  4. En datamodell för en väderapp