我正在做一个项目,但是有问题。我有一个名为friends
的表,该表具有三列id
,from_email
和to_email
(这是一个社交网站,“ from_email”是跟随“ to_email”的人)。我希望查询返回我关注的前5位好友的数量。我知道前5名的查询是:
SELECT
to_mail,
COUNT(*) AS friendsnumber
FROM
friends
GROUP BY
to_email
ORDER BY
friendsnumber DESC
LIMIT 5
有任何想法吗?
我还想返回朋友,并按照他们的名字顺序排列相同数量的关注者。可能吗?
最佳答案
您应该使用COUNT(from_email)
而不是COUNT(*)
;因为您要计算关注者数量,该数量由from_email
表示。
因此,您的select子句将类似于:
SELECT to_email, COUNT(from_email) as magnitude
要获得您关注的最受欢迎的人,可以使用
IN
子句:WHERE to_email IN (SELECT to_email FROM friends WHERE from_email='MY_EMAIL');
关于名称,您应将此查询与另一个包含
name
值的表联接。既然您已经掌握了要点,我希望您可以尝试自己编写完整的查询=)
关于mysql - 使用where子句获取mysql中排名前5的最受欢迎的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27954896/