我有一个数据库,看起来像这样:
user_id photo_id
1 1
1 2
1 3
1 4
2 5
2 6我想从上面得到一个最受欢迎的用户列表。如下所示:
Popular Users: 1 (4) & 2 (2)我该如何在PHP的mysql中做到这一点?
谢谢,Coulton
附言:我对mysql命令了解很多,所以你不必把它搞得一文不值。谢谢!
发布于 2011-03-25 10:42:09
基本查询将是:
select user_id, count(user_id) as cnt
from yourtable
group by user_id
order by cnt desc 要显示结果,请执行以下操作:
$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);发布于 2011-03-25 10:40:52
select user_id, count(user_id) as count from table order by count desc group by user_id不管怎么说,像这样的事情...
发布于 2011-03-25 10:47:06
这可以仅使用SQL命令来完成。这就是我要做的:
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个结果。
https://stackoverflow.com/questions/5427954
复制相似问题