update test5
set sort_no=@srt:=if(@grp=q_id,@srt+1,1),
q_id=@grp:=q_id
where (0,0)=(select @grp:=0,@srt:=0)
order by q_id, `name`
Nastavte potřebné 'objednat podle'. První sloupec v 'pořadí podle' musí být "q_id".
SET SQL_SAFE_UPDATES = 0;