कुछ ऐसा काम हो सकता है:
SELECT *
FROM categories
ORDER BY IF(parent_id, parent_id, category_id), parent_id, display_order
लेकिन चूंकि यह किसी अनुक्रमणिका का उपयोग नहीं कर सकता, इसलिए यह धीमा हो जाएगा। (हालांकि परीक्षण नहीं किया, गलत हो सकता है)
पहला ORDER BY
स्थिति माता-पिता और बच्चों को एक साथ क्रमबद्ध करती है; फिर दूसरा यह सुनिश्चित करता है कि माता-पिता अपने बच्चों से पहले हों; तीसरा बच्चों को आपस में बाँट लेता है।
साथ ही, यह स्पष्ट रूप से केवल तभी काम करेगा जब आपने सीधे वर्णन किया है, जहां आपके पास दो-स्तरीय पदानुक्रम है।