sql >> Base de Datos >  >> RDS >> Mysql

Selección de registros en orden de identificación principal

Si aquellos sin padres tuvieran null en su parent columna, su declaración sería muy simple:

SELECT id, name, parent FROM categories order by coalesce(parent, id), id;

Si insistes en 0 representando ningún padre, puede usar CASE WHEN ... THEN ... más detallado declaración.

Editar:

-- Sorting by name instead
select a.id, a.name, a.parent 
from categories a left join categories b on a.parent=b.id 
order by coalesce(b.name, a.name), a.name