我希望你能帮我解决这个问题。我一直在寻找方法来设置一个 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/