我想只在与索引匹配的行数达到一定数量时才从MySQL表中返回行。
问题在于:我有一个用户评论索引的用户评论表。因此,我有许多行具有不同的评论,所有评论都由用户名索引。我正在创建一个搜索过滤器,因此我需要返回具有一定数量评论的用户名(即表中的评论行数)。
我如何创建一个MySQL查询,只会提取有4条评论的人的用户名(4个表格行条目)?
答案 0 :(得分:4)
这听起来是一个简单的GROUP BY
和COUNT()
聚合,使用HAVING
子句来限制那些有4条评论的人。
SELECT
username,
COUNT(*) AS num_reviews
FROM
user_reviews
GROUP BY username
/* Limit to those with 4 reviews */
HAVING num_reviews = 4
查看aggregate functions参考,了解有关如何使用GROUP BY
的信息。 HAVING
子句在GROUP BY
之后应用,用于限制其结果。