PHP/MySQL-按条目数量返回前10名用户
我有一个数据库表,其中包含用户id和shoe 对于每只鞋,用户在db中获得一行,因此id为5的人可能有50个条目,id为3的用户可能有23个条目,依此类推 我想知道如何根据db中鞋子的数量显示前10个用户ID?试试这个PHP/MySQL-按条目数量返回前10名用户,php,mysql,Php,Mysql,我有一个数据库表,其中包含用户id和shoe 对于每只鞋,用户在db中获得一行,因此id为5的人可能有50个条目,id为3的用户可能有23个条目,依此类推 我想知道如何根据db中鞋子的数量显示前10个用户ID?试试这个 选择用户id,从表ORDER BY shoes DESC LIMIT 10中将(用户id)计数为shoes SELECT user_id, COUNT(user_id) AS num_shoes FROM shoes GROUP BY user_id ORDER BY num_s
选择用户id,从表ORDER BY shoes DESC LIMIT 10中将(用户id)计数为shoes
SELECT user_id, COUNT(user_id) AS num_shoes FROM shoes GROUP BY user_id ORDER BY num_shoes DESC LIMIT 10
关键是groupby
指令,它告诉MySQL将所有相同的用户ID滚动到一个实体中。这不起作用,因为它会多次显示一个ID。。。。我希望能够计算一个id的行数,然后显示前10个id,如果我的条目是userid=3,shoe=3 | | userid=3,shoe=5,该怎么办。您的查询将返回userid=3,count=2。。。。应该是SUM…我不理解这个问题,OP只是希望根据他们拥有的鞋子数量来确定前10个用户ID。这个查询非常有效,尽管上面的评论说我应该使用SUM而不是COUNT。。是这样吗?绝对不是。如果您使用了SUM
,您将得到每个鞋标识的总和,而不是它们的计数。因此,如果您有user\u id=3
拥有2双id为4和8的鞋子,那么user\u id=3
的SUM
将返回12,而不是2。有意义吗?@BigJobbies:意味着在所有行中,您都有鞋的数据,如1。。。对??shoe字段的内容是什么?我是Col.Shrapnel,数据库表的内容有点模糊,但我假设该表是user\u id
和shoe\u id