sql >> Databasteknik >  >> RDS >> Mysql

SQL kapslad ordning efter?

Något liknande det här kanske fungerar:

SELECT *
FROM categories
ORDER BY IF(parent_id, parent_id, category_id), parent_id, display_order

men eftersom det inte kan använda ett index, kommer det att gå långsamt. (Testade dock inte, kan ha fel)

Den första ORDER BY tillstånd sorterar föräldrar och barn tillsammans; sedan säkerställer den andra att föräldern går före sina barn; den tredje sorterar barnen sinsemellan.

Dessutom kommer det uppenbarligen bara att fungera i det fall du direkt beskrev, där du har en hierarki på två nivåer.



  1. Fyll i land och stad automatiskt från postnummer och tvärtom

  2. Förstå DROP TABLE-satsen i SQL Server

  3. Välj objekt från olika källor och ordna efter datum

  4. Hur man dödar en körande SELECT-sats