Bạn có thể sử dụng một biến khác lưu trữ type_id trước đó (@type_id
). Truy vấn được sắp xếp theo type_id
, vì vậy bất cứ khi nào có thay đổi trong type_id
, trình tự phải được đặt lại thành 1 lần nữa.
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`;