Mysql
 sql >> база данни >  >> RDS >> Mysql

Пренаредете редовете в MySQL таблица

Трябва да направите това в две стъпки:

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

...което ще измести номера на поръчката на всеки ред по-надолу в списъка от лицето, след което вмъквате.

След това:

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

За да вмъкнете новия ред (ако приемем, че идентификационният номер е автоматично нарастващ), с номер на поръчка с едно повече от лицето, след което вмъквате.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пребройте броя на появяванията на низ в поле VARCHAR?

  2. Подреждане по подразбиране в MySQL (ALTER TABLE ... ORDER BY ...;)

  3. PHP PDO MySQL курсорът с възможност за превъртане не работи

  4. Как да свържа приложението за Android към базата данни MySQL?

  5. Въведение в отказоустойчивостта за MySQL репликация - блогът 101