4

仅当与索引匹配的行数满足特定数量时,我才想从 MySQL 表中返回行。

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

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

4

1 回答 1

6

这听起来很简单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

查看聚合函数参考以获取有关如何GROUP BY使用的信息。该HAVING子句在 and 之后应用,GROUP BY用于限制其结果。

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

于 2012-12-22T20:24:33.747 回答