sql >> Databáze >  >> RDS >> Mysql

Změňte pořadí řádků v tabulce MySQL

Musíte to udělat ve dvou krocích:

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

...což posune pořadové číslo každého řádku dále v seznamu než osoba, za kterou vkládáte.

Potom:

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

Chcete-li vložit nový řádek (za předpokladu, že ID je automatický přírůstek), s číslem objednávky o jedno vyšším než osoba, za kterou vkládáte.



  1. Převzít hodnotu z FieldA, odeslat do funkce db, vrátit hodnotu do FieldB

  2. Jak uzamknu řádek InnoDB, který ještě neexistuje?

  3. Jak generovat data testu DB

  4. Spočítejte všechny podřízené uzly hierarchických dat v tabulce