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

Ordine nidificato SQL per?

Qualcosa del genere potrebbe forse funzionare:

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

ma poiché non può utilizzare un indice, sarà lento. (Non ho testato però, potrebbe essere sbagliato)

Il primo ORDER BY la condizione ordina genitori e figli insieme; poi il secondo assicura che il genitore preceda i suoi figli; il terzo ordina i bambini tra di loro.

Inoltre, funzionerà ovviamente solo nel caso che hai descritto direttamente, dove hai una gerarchia a due livelli.