add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
select version();
version()
10.5.13-MariaDB
CREATE TABLE mytable (
product_key INTEGER,
image_key INTEGER,
image_order INTEGER,
ordered_id INTEGER);
INSERT INTO mytable(ordered_id,product_key, image_key, image_order) VALUES
(16384,5692,42265,0),
(17648,5692,42207,1),
(18859,5692,42210,2),
(20070,5692,42212,3),
(22376,5692,42266,5),
(23640,5692,42273,6),
(24904,5692,42268,7),
(26168,5692,42264,8);

SELECT * FROM mytable;
product_key image_key image_order ordered_id
5692 42265 0 16384
5692 42207 1 17648
5692 42210 2 18859
5692 42212 3 20070
5692 42266 5 22376
5692 42273 6 23640
5692 42268 7 24904
5692 42264 8 26168
UPDATE mytable i
JOIN (
SELECT ordered_id, product_key, image_order,
(@ROW:=(IF(@productkey=product_key, @ROW+1, 0))) AS row_order,
(@productkey:=product_key) AS pid
FROM mytable,
(SELECT @ROW=-1, @productkey:=-1) a
ORDER BY product_key, image_order) b
ON b.ordered_id=i.ordered_id
SET i.image_order = b.row_order
WHERE i.image_order <> b.row_order;
SELECT * FROM mytable;
product_key image_key image_order ordered_id
5692 42265 0 16384
5692 42207 1 17648
5692 42210 2 18859
5692 42212 3 20070
5692 42266 5 22376
5692 42273 6 23640
5692 42268 7 24904
5692 42264 8 26168