MySQL tidak mendukung kueri rekursif, jadi jika seorang anak dapat memiliki anak, tidak ada cara untuk merumuskan kueri semacam itu. Jika tidak, kueri ini akan mengembalikan baris dalam urutan yang Anda butuhkan:
SELECT * FROM tablename
ORDER BY
CASE WHEN parent_id=0 THEN id ELSE parent_id END,
id
Silakan lihat biola di sini
. Triknya adalah mengurutkan baris dengan id
jika itu adalah orang tua atau dengan parent_id
jika itu anak-anak, lalu dengan id
.