Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sortuj tabelę, używając pętli w MySQL z SELECT i UPDATE

SELECT @p:=0, @parent:=0;
UPDATE page p1
JOIN
( SELECT title, 
  CASE WHEN @parent<>parent_id THEN @p:=0 ELSE @p:[email protected]+1 END as position,
  @parent:=parent_id as parent_id
  FROM page
  ORDER BY parent_id, title DESC ) p2
ON p1.title = p2.title AND p1.parent_id = p2.parent_id
SET p1.position = p2.position

Jeśli Twoje pary (parent_id,title) nie są unikalne, użyj klucza podstawowego jako warunku dołączenia - musisz go dodać, aby wybrać w nawiasie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLAlchemy nie rozróżnia wielkości liter w zapytaniu opartym na IN?

  2. Zapytanie MySQL o listę wartości

  3. Użyj LIKE %..% z wartościami pól w MySQL

  4. Korzystanie z funkcji agregujących w zapytaniu SQL

  5. mysql> tworzenie testu bazy danych; BŁĄD 1006 (HY000):Nie można utworzyć „testu” bazy danych (errno:2)