4
比方说,我有一个表,看起来像这样:订购两列
正如你所看到的 - ID为6行与ID 3.排我想响应命令我的结果集,以便它出现在第3行和第7行之间。如何实现这一目标?做: select * from comments_comment order by updated_at, response_to_id
让我完全看到你在图像上看到的东西。
比方说,我有一个表,看起来像这样:订购两列
正如你所看到的 - ID为6行与ID 3.排我想响应命令我的结果集,以便它出现在第3行和第7行之间。如何实现这一目标?做: select * from comments_comment order by updated_at, response_to_id
让我完全看到你在图像上看到的东西。
ORDER BY COALESCE(response_to_id, id), id
您的订单背后的逻辑是,你想要父记录,和他们的孩子,出现组合在一起,与父母出现在该组的顶部。
上面ORDER BY
在于它是通过在儿童,或在亲本其中response_to_id
为空的情况下的实际id
的情况下服用response_to_id
标识组ID。然后在每个组内按id
值排序。
ORDER BY id_integer? –
在这种特殊情况下,它会起作用,但如果有人会在3号回应中添加评论,但在评论号7后创建的话则不会。 –
不是这样吗? 6是对id 3的响应,它是在id 7之后创建的 – ehh