Antag @old er værdien 4 for æblers gamle position og @new er den nye stilling 1.
set @old = 4;
set @new = 1;
UPDATE Items
SET `order value` =
CASE `order value` WHEN @old THEN @new
ELSE `order value` + SIGN(@example@sqldat.com) END
WHERE `order value` BETWEEN LEAST(@old, @new) AND GREATEST(@old, @new);
Jeg brugte MySQL 5.1.52 til at teste dette på dine eksempeldata, og det virker. Den identiske SQL fungerer også, hvis du har brug for at flytte en tidlig post til at være senere, eller flytte en i midten osv. Du skal blot indstille værdierne for @old og @new .