我有一个问题,因为我仍然是非常新的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出现了3次,user5出现了2次,user44出现了1次。这基本上是一个推荐系统,我已经编码,现在我想显示谁推荐大多数用户到我的网站。User1是引用者,user2是被引用者。
我还想列出10行的最大数量,如LIMIT 10
任何建议我将如何做这个查询和输出它与php?我知道如何连接到mysql -我只是不知道如何准确地响应我想要的方式。
谢谢你在这件事上的帮助
听起来你想要这个:
select user1, count(*) Total
from yourtable
group by user1
order by total desc
limit 0, 10
参见SQL Fiddle with Demo
注意:你的描述中列名不清楚
这是你的问题的解决方案。
select user1, count(*) as Total
from tablename
group by user1
limit 10;
你能试试吗?
SELECT username,count(username)
FROM yourtablename
Group By username
Order by 2 desc