这样的事情可能会起作用:
SELECt *FROM categoriesORDER BY IF(parent_id, parent_id, category_id), parent_id, display_order
但由于它不能使用索引,因此速度会很慢。(虽然没有测试,可能是错误的)
第一个
ORDER BY条件将父母和孩子分类在一起。然后第二个确保父母先于子女;第三类对孩子们进行分类。
而且,它显然仅在您直接描述的情况下才有效,在这种情况下,您具有两级层次结构。

这样的事情可能会起作用:
SELECt *FROM categoriesORDER BY IF(parent_id, parent_id, category_id), parent_id, display_order
但由于它不能使用索引,因此速度会很慢。(虽然没有测试,可能是错误的)
第一个
ORDER BY条件将父母和孩子分类在一起。然后第二个确保父母先于子女;第三类对孩子们进行分类。
而且,它显然仅在您直接描述的情况下才有效,在这种情况下,您具有两级层次结构。