它没有测试,但我认为这也应该在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=-1
UNION
SELECT c.parent_id,c.id,p.created_at as parent_date,c.created_at as child_date,c.content
FROM 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_id
ORDER BY parent_date,child_date