【发布时间】:2023-03-25 12:04:01
【问题描述】:
我有一个 mysql InnoDB 表,结构如下:
id
artist_id
那里有很多条目,大多数artist_ids 在那里有15 次。但有些人只在那里两次。我需要这些。
我想出了以下方法,但无济于事:
SELECT artist_id FROM matches HAVING COUNT(artist_id)=2
它返回 0 行,尽管有些艺术家 ID 只出现在表中两次。我怎样才能得到它们?
【问题讨论】:
我有一个 mysql InnoDB 表,结构如下:
id
artist_id
那里有很多条目,大多数artist_ids 在那里有15 次。但有些人只在那里两次。我需要这些。
我想出了以下方法,但无济于事:
SELECT artist_id FROM matches HAVING COUNT(artist_id)=2
它返回 0 行,尽管有些艺术家 ID 只出现在表中两次。我怎样才能得到它们?
【问题讨论】:
你好,
我会用这个:SELECT artist_id,count(*) FROM matches
GROUP BY artist_id
HAVING COUNT(*)=2
因为HAVING 是结果的过滤器。
使用=2,您将找到恰好存在两次的那些。
【讨论】:
=2,而不是>1,但除此之外它完全没问题!谢谢!
select artist_id, count(id) as num from matches group by artist_id having num = 2;
【讨论】: