mysql选择值出现的记录

标签 mysql sql count

我希望你能帮我解决这个问题。我一直在寻找方法来设置一个 MySQL 查询,该查询根据某个值出现的次数来选择行,但到目前为止还没有成功。我很确定我需要在某处使用 count(*),但我只能找到如何计算所有值或所有不同的值,而不是计算所有出现的次数。

我有这样一张表:

info setid
--   --
A    1
B    1
C    2
D    1
E    2
F    3
G    1
H    3

我需要的是一个查询,它将选择 setid 出现一定次数 (x) 的所有行。

所以使用 x=2 应该给我

C    2
E    2
F    3
H    3

因为 setIds 2 和 3 都出现了两次。使用 x=1 或 x = 3 应该不会给出任何结果,而选择 x=4 应该会给出结果

A    1
B    1
D    1
G    1

因为只有setid 1出现了4次。

希望大家帮帮我。在这一点上,我一直在寻找答案,以至于我什至不确定这是否可以在 MySQL 中完成。 :)

最佳答案

select * from mytable
where setid in (
    select setid from mytable
    group by setid
    having count(*) = 2
)

您可以在子查询的 having count(*) 部分指定 setid 需要在表中出现的次数

关于mysql选择值出现的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26107231/

相关文章:

mysql - 首先按用户排序数据库结果集,然后按日期排序

sql - 在 oracle 树查询中加入其他表

sql-server - 错误的计数结果

arrays - 如何使用 Vue JS 为嵌套数组设置增量计数器

mysql - Python - MySql.Connector UPDATE 语句不起作用

MYSQL迁移到postgreSQL问题

mysql - 嵌套游标调用在 MYSQL 中仅调用一次内部游标

mysql - 从表中获取最新日期及其在mysql中的行

c# - 正则表达式 - 如果开始匹配则匹配结束

c++ - std::vector 中的重复元素