如果匹配索引的行数满足值,如何从MySQL表中选择行?

时间:2012-12-22 20:21:15

标签: mysql sql

我想只在与索引匹配的行数达到一定数量时才从MySQL表中返回行。

问题在于:我有一个用户评论索引的用户评论表。因此,我有许多行具有不同的评论,所有评论都由用户名索引。我正在创建一个搜索过滤器,因此我需要返回具有一定数量评论的用户名(即表中的评论行数)。

我如何创建一个MySQL查询,只会提取有4条评论的人的用户名(4个表格行条目)?

1 个答案:

答案 0 :(得分:4)

这听起来是一个简单的GROUP BYCOUNT()聚合,使用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之后应用,用于限制其结果。

http://sqlfiddle.com/#!2/9dc86/1