繁体   English   中英

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

[英]How to select rows from MySQL table only if count of rows matching index meets value?

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

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

我如何创建一个MySQL查询,只会提取人们的用户名称有4条评论(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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM