-1

我有一个问题,因为我对 mysql 还是很陌生,所以这就是我想要做的。我有一个包含 user1 user2 和一个数字的表

例子:

user1 user2 1
user5 user17 1
user44 user33 12
user1 user5 1
user1 user24 1
user5 user666 1

我要做的是首先列出第一个用户字段,然后列出按该数量排序的 user2 值的数量。

对于上面的示例,我希望结果如下所示:

user1 3
user5 2
user44 1

原因是 user1 在 user1 字段中出现了 3 次,用户 5 出现了 2 次,用户 44 出现了 1 次。它基本上是我编写的推荐系统,现在我想显示谁将大多数用户推荐到我的网站。user1 是推荐人,user2 是推荐人。

我还想列出最多 10 行,如 LIMIT 10

有什么建议我将如何执行此查询并使用 php 输出它?我知道如何做与 mysql 的连接部分——我只是不知道如何以我想要的方式来回显它。

感谢您在这件事上的帮助:)

4

3 回答 3

1

听起来你想要这个:

select user1, count(*) Total
from yourtable 
group by user1
order by total desc
limit 0, 10

请参阅带有演示的 SQL Fiddle

注意:您的描述中的列名不清楚

于 2012-12-30T14:02:05.867 回答
0

这是您的问题的解决方案。

select user1, count(*) as Total
from tablename
group by user1
limit 10;
于 2012-12-30T14:08:19.927 回答
0

你可以试试吗?

SELECT username,count(username)
FROM yourtablename
Group By username
Order by 2 desc
于 2012-12-30T14:28:40.507 回答