sql >> Database teknologi >  >> RDS >> Mysql

Sorter tabel ved hjælp af loop i MySQL med SELECT og 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

Hvis dine (parent_id,title)-par ikke er unikke, brug din primære nøgle som join-betingelse - du skal tilføje den for at vælge i parentes.



  1. Oracle:eksporter en tabel med blobs til en .sql-fil, der kan importeres igen

  2. Hvordan kopierer man en række og indsætter i samme tabel med et autoincrement-felt i MySQL?

  3. INDSÆT ... PÅ DUBLIKAT NØGLE (gør ingenting)

  4. Vis indlæsningsbillede, mens PHP kører