Mysql
 sql >> Base de données >  >> RDS >> Mysql

Existe-t-il une seule requête pouvant mettre à jour un numéro de séquence dans plusieurs groupes ?

Vous pouvez utiliser une autre variable stockant le type_id précédent (@type_id ). La requête est triée par type_id , donc chaque fois qu'il y a un changement dans type_id , la séquence doit être remise à 1 à nouveau.

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`;