仅当与索引匹配的行数满足特定数量时,我才想从 MySQL 表中返回行。
这是问题所在:我有一个按用户名索引的用户评论表。因此,我有许多不同评论的行,所有评论都由用户名索引。我正在创建一个搜索过滤器,所以我需要返回拥有一定数量评论的人的用户名(即表格中的评论行数)。
我将如何创建一个 MySQL 查询,该查询将只提取具有 4 个评论(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
查看聚合函数参考以获取有关如何GROUP BY
使用的信息。该HAVING
子句在 and 之后应用,GROUP BY
用于限制其结果。