它没有测试,但我认为这也应该在MySQL中工作:
ORDER BY CASE WHEN parent_id=-1 THEN id ELSE parent_id END, created_at
编辑: 如果您不能假设ID以与注释相同的逻辑顺序升序,则会变得更加复杂:
SELECt parent_id,id,created_at parent_date,null child_date,content FROM Comments WHERe parent_id=-1UNIOnSELECt c.parent_id,c.id,p.created_at as parent_date,c.created_at as child_date,c.contentFROM Comments c JOIN (SELECt id,created_at,content FROM Comments WHERe parent_id=-1 GROUP BY id,created_at,content) p ON p.id=c.parent_idORDER BY parent_date,child_date



