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
.