Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zeilen in einer MySQL-Tabelle neu anordnen

Sie müssen dies in zwei Schritten tun:

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

... wodurch die Auftragsnummer jeder Zeile weiter nach unten in der Liste verschoben wird als die Person, nach der Sie einfügen.

Dann:

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

Um die neue Zeile einzufügen (unter der Annahme, dass die ID automatisch erhöht wird), mit einer Bestellnummer, die um eins höher ist als die der Person, nach der Sie einfügen.