Bạn đã viết một truy vấn tốt và thông minh để tạo ra các số hàng đó, một truy vấn tránh được một giải pháp lộn xộn bằng cách sử dụng các biến phiên. Để cập nhật, chỉ cần tham gia bảng của bạn bomitems
cho truy vấn này:
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;
Tôi đã kiểm tra truy vấn này trên MySQL Workbench cục bộ của mình và nó có vẻ đang hoạt động.