MySQL không hỗ trợ truy vấn đệ quy, vì vậy nếu một đứa trẻ có thể có những đứa trẻ thì không có cách nào để tạo ra một truy vấn như vậy. Nếu không, truy vấn này sẽ trả về các hàng theo thứ tự bạn cần:
SELECT * FROM tablename
ORDER BY
CASE WHEN parent_id=0 THEN id ELSE parent_id END,
id
Vui lòng xem fiddle tại đây
. Mẹo là sắp xếp các hàng theo id
nếu đó là cha mẹ hoặc bởi parent_id
nếu đó là trẻ em và sau đó là id
.