Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL verschachtelte Reihenfolge nach?

So etwas könnte vielleicht funktionieren:

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

aber da es keinen Index verwenden kann, wird es langsam sein. (Hab aber nicht getestet, könnte falsch sein)

Das erste ORDER BY Bedingung sortiert Eltern und Kinder zusammen; dann stellt der zweite sicher, dass der Elternteil seinen Kindern vorangeht; die dritte sortiert die Kinder untereinander.

Außerdem funktioniert es offensichtlich nur in dem von Ihnen direkt beschriebenen Fall, in dem Sie eine zweistufige Hierarchie haben.