首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获得mysql数据库中最受欢迎的5个项目?

获得mysql数据库中最受欢迎的5个项目?
EN

Stack Overflow用户
提问于 2011-03-25 10:35:27
回答 5查看 17.1K关注 0票数 3

我有一个数据库,看起来像这样:

代码语言:javascript
复制
user_id    photo_id
1          1
1          2
1          3
1          4
2          5
2          6

我想从上面得到一个最受欢迎的用户列表。如下所示:

代码语言:javascript
复制
Popular Users: 1 (4) & 2 (2)

我该如何在PHP的mysql中做到这一点?

谢谢,Coulton

附言:我对mysql命令了解很多,所以你不必把它搞得一文不值。谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-25 10:42:09

基本查询将是:

代码语言:javascript
复制
select user_id, count(user_id) as cnt
from yourtable
group by user_id
order by cnt desc 

要显示结果,请执行以下操作:

代码语言:javascript
复制
$results = array()
while($row = mysql_fetch_assoc($query_result)) {
   $results[] = "{$row['user_id']} ({$row['cnt']})"
   // repeat for however many results you want
}
echo "Popular user: ", implode(" & ", $results);
票数 17
EN

Stack Overflow用户

发布于 2011-03-25 10:40:52

代码语言:javascript
复制
select user_id, count(user_id) as count from table order by count desc group by user_id

不管怎么说,像这样的事情...

票数 5
EN

Stack Overflow用户

发布于 2011-03-25 10:47:06

这可以仅使用SQL命令来完成。这就是我要做的:

代码语言:javascript
复制
SELECT user_id, count(user_id) uid_count
FROM <<table>>
GROUP BY user_id
ORDER BY uid_count DESC
LIMIT 5;

GROUP BY收集所有具有相同user_id的行,并且ORDER BY ...DESC按降序对结果进行排序,因此第一行表示最受欢迎的用户。LIMIT为您提供前5个结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5427954

复制
相关文章

相似问题

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