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

Reordenar filas en una tabla MySQL

Debe hacer esto en dos pasos:

UPDATE MyTable 
   SET `Order` = `Order` + 1 
 WHERE `Order` > (SELECT `Order` 
                    FROM MyTable 
                   WHERE ID = <insert-after-id>);

...que cambiará el número de orden de cada fila más abajo en la lista que la persona que está insertando después.

Entonces:

INSERT INTO MyTable (Name, `Order`)
VALUES (Name, (SELECT `Order` + 1 FROM MyTable WHERE ID = <insert-after-id>));

Para insertar la nueva fila (suponiendo que el ID se incremente automáticamente), con un número de orden de uno más que la persona que está insertando después.