sql >> Database >  >> RDS >> Mysql

Bovenliggende-kind hiërarchie ophalen uit een naar zichzelf verwijzende mysql-tabel

MySQL ondersteunt geen recursieve zoekopdrachten, dus als een kind kinderen kan hebben, is er geen manier om zo'n zoekopdracht te formuleren. Anders zou deze zoekopdracht de rijen moeten retourneren in de volgorde die u nodig hebt:

SELECT * FROM tablename
ORDER BY
  CASE WHEN parent_id=0 THEN id ELSE parent_id END,
  id

Zie fiddle hier . De truc is om rijen te ordenen op id als het een ouder is of door parent_id als het een kind is, en dan door id .




  1. MySQL laat rijen weg die een gebruiker al heeft gezien bij het controleren van een geziene tabel

  2. Hoe houd ik toezicht op mijn MySQL-replicatieserver?

  3. Toegang krijgen tot Oracle DB in VirtualBox vanuit Host (windows)

  4. Hoe MySQL-querylogboek inschakelen?