sql >> Databasteknik >  >> RDS >> Mysql

Ordna om rader i en MySQL-tabell

Du måste göra detta i två steg:

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

...vilket kommer att flytta beställningsnumret för varje rad längre ner i listan än personen du infogar efter.

Sedan:

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

För att infoga den nya raden (förutsatt att ID är automatisk ökning), med ett beställningsnummer på en mer än personen du infogar efter.



  1. Funktioner med variabelt antal ingångsparametrar

  2. Det är möjligt att infoga data i två olika tabeller i mysql med en insert-fråga php?

  3. Hur använder man yttre full sammanfogning i laravel 5.0?

  4. Mysql/Php - Aktuellt datum och tid