我有一个评论发布系统,不同的用户可以在其中发布他们的评论。还有一个子评论功能,用户也可以在其中给出他们的子评论,就像他们一样,也可以删除它们。
我将所有评论和子评论存储在一个名为 main_reviews 的表中,该表有一个父 id 字段,通过它我可以检测哪个是评论,哪个是子评论。主评论的父 id 值为 0,而子评论的父 id 值为 id,它们是子评论。
因此,当我使用 php 函数 mysql_fetch_array() 在页面上显示所有评论和子评论时,我想使用一个查询来整理所有评论和子评论。我使用了以下查询:
mysql_query("select * from main_reviews where p_id=0 order by id desc");
这将显示所有正确的数据。但转折就在这里:我想对所有评论及其子评论进行排序,这意味着当用户发布子评论时,该特定子评论及其主要评论应该像 facebook 一样显示在顶部。
因此,无论是使用“union”还是“in”子句或其他任何内容,都必须生成什么查询,以便所有评论与其子评论一起排序,即使它们的子评论稍后发布。
很抱歉,如果有任何语法错误,因为我来自非英语国家。