以特定顺序从MySQL检索数据

时间:2014-05-21 07:49:59

标签: php mysql

我不知道如何提出这个问题,但我会尽我所能。我正在设计一个评论和回复系统,以便每个评论都有特定数量的回复,评论和重播分别存储在同一个MySQl数据库的两个表中,所以我们必须有两个表

表1

评论ID |评论|日期

表2

X |回复文字|日期

其中X代表回复所属的评论ID。

我知道代码

$res=mysql_query("SELECT * from commenttable ORDER BY `Date` DESC ");
while($row=mysql_fetch_array($res))
{
echo $row["Comment"];
}

列出了从最近到旧的评论。

是否可以修改此代码以列出回复数量最少的评论。

3 个答案:

答案 0 :(得分:0)

你可以运行"计数"在回复表上查询,并按顺序查询。 我不是SQL专家所以我确信这可以通过多种方式得到改进,但我希望这会让你朝着正确的方向前进:

Select commentId, count(1) as c 
from replytable
group by commentId
order by c;

应该为您获取每个commentId的回复数量,然后您可以获取评论'评论表中的数据根据​​ID。

进一步阅读: How to use count and group by at the same select statement http://www.w3resource.com/sql/aggregate-functions/count-with-group-by.php

答案 1 :(得分:0)

我相信count()就是你问题的答案。但在我们继续计算您在第二个表上的回复数量之前,您可能想要加入这两个表。您可以使用ORDER BY count(id)

答案 2 :(得分:0)

这样的事情应该有效:

select t1.comment_id, count(t2.x) 
FROM table1 t1 LEFT JOIN table2 t2 
ON t1.comment_id=t2.x
GROUP BY t1.comment_id
ORDER BY 2 DESC