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

Сортирайте таблицата, използвайки цикъл в MySQL с SELECT и 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

Ако вашите (parent_id,title) двойки не са уникални, използвайте вашия първичен ключ като условие за присъединяване - ще трябва да го добавите, за да изберете в скоби.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP/MySQL Критичен раздел

  2. Zend_Db_Select подреждане на случаен принцип, съвместимо в mssql / mysql

  3. MySQL включва нула редове, когато се използва COUNT с GROUP BY

  4. MySQL просто разбиране на грешки

  5. Демонтиране на извиквания към базата данни на възел