Sie haben eine gute und clevere Abfrage geschrieben, um diese Zeilennummern zu generieren, eine, die eine unordentliche Lösung mit Sitzungsvariablen vermeidet. Um das Update durchzuführen, treten Sie einfach Ihrem Tisch bomitems
bei zu dieser Abfrage:
UPDATE bomitems t1
INNER JOIN
(
SELECT
t.ID,
t.Parent,
(SELECT COUNT(*) FROM bomitems AS x WHERE x.id <= t.id AND x.Parent = t.Parent) AS Counter
FROM bomitems t
) t2
ON t1.ID = t2.ID
SET t1.Counter = t2.Counter;
Ich habe diese Abfrage auf meiner lokalen MySQL Workbench getestet und sie scheint zu funktionieren.