sql >> Base de Datos >  >> RDS >> Mysql

Mantener/actualizar el orden de los registros en mysql

¿Algo como esto lo haría?

UPDATE items 
SET position = CASE position 
  WHEN $oldpos THEN $newpos 
  ELSE position + SIGN($oldpos-$newpos)
 END
WHERE position BETWEEN LEAST( $newpos, $oldpos ) 
                AND GREATEST( $newpos, $oldpos );

Lo probé un par de veces y parece funcionar.