Mysql
 sql >> Base de données >  >> RDS >> Mysql

Réorganiser les lignes dans une table MySQL

Vous devez procéder en deux étapes :

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

... ce qui déplacera le numéro de commande de chaque ligne plus bas dans la liste que la personne après laquelle vous insérez.

Ensuite :

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

Pour insérer la nouvelle ligne (en supposant que l'ID est incrémenté automatiquement), avec un numéro de commande supérieur d'un à la personne après laquelle vous insérez.