首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按特定顺序从MySQL检索数据

问按特定顺序从MySQL检索数据
EN

Stack Overflow用户
提问于 2014-05-21 15:49:59
回答 3查看 69关注 0票数 0

我不知道怎么问这个问题,但我会尽我所能的。我正在设计一个评论和回复系统,这样每个评论都有特定数量的回复,并且评论和回放分别存储在同一MySQl数据库中的两个表中,因此我们必须使用两个表

表1

评论ID |评论|日期

表2

X|回复文本|日期

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

我知道代码

代码语言:javascript
复制
$res=mysql_query("SELECT * from commenttable ORDER BY `Date` DESC ");
while($row=mysql_fetch_array($res))
{
echo $row["Comment"];
}

按最近到旧的顺序列出注释。

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

EN

回答 3

Stack Overflow用户

发布于 2014-05-21 16:01:28

您可以在replies表上运行"count“查询,并按此进行排序。我不是SQL专家,所以我确信可以通过多种方式改进这一点,但我希望这会让您走上正确的方向:

代码语言:javascript
复制
Select commentId, count(1) as c 
from replytable
group by commentId
order by c;

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

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

票数 0
EN

Stack Overflow用户

发布于 2014-05-21 16:02:12

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

票数 0
EN

Stack Overflow用户

发布于 2014-05-21 16:05:16

像这样的东西应该是有效的:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23777156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档