Вы, кажется, хотите update
. Если это так:
update t join
(select t.*, row_number() over (order by id) as seqnum
from t
) tt
on t.id = tt.id
set t.parent_id = 9000 + floor( (seqnum - 1) / 4);
Обратите внимание, что при этом игнорируется текущее значение parent_id
, которое присваивает то же значение группам из 4 строк на основе id
.
EDIT:
В старых версиях MySQL:
update t join
(select t.*, (@rn := @rn + 1) as seqnum
from (select t.* from t order by id) t cross join
(select @rn := 0) params
) tt
on t.id = tt.id
set t.parent_id = 9000 + floor( (seqnum - 1) / 4);