MYSQL如何从表中选择所有电子邮件,但限制同一域的电子邮件数量

MYSQL如何从表中选择所有电子邮件,但限制同一域的电子邮件数量,mysql,sql,database,greatest-n-per-group,Mysql,Sql,Database,Greatest N Per Group,正如主题所示,我想选择列表中的所有电子邮件。但要限制同一域名的电子邮件数量 假设我有500个gmail地址 和2个example.com地址 。。等等 我只想抓取两个相同域的地址 有了这个字符串,我可以选择每个域上累积的域数,这样也许我可以用这个字符串做些什么 SELECT substring_index(email, '@', -1), COUNT(*) FROM emaillist GROUP BY substring_index(email, '@', -1); 请帮忙 SELECT

正如主题所示,我想选择列表中的所有电子邮件。但要限制同一域名的电子邮件数量

假设我有500个gmail地址

和2个example.com地址

。。等等

我只想抓取两个相同域的地址

有了这个字符串,我可以选择每个域上累积的域数,这样也许我可以用这个字符串做些什么

SELECT substring_index(email, '@', -1), COUNT(*) FROM emaillist GROUP
BY substring_index(email, '@', -1);
请帮忙

SELECT
  MIN(email) AS address1
  IF(MAX(email)==MIN(email),NULL,MAX(email)) AS address2
FROM emaillist
GROUP BY substring_index(email, '@', -1);
如果你想把它们放在一列中

SELECT MIN(email) AS address1
FROM emaillist
GROUP BY substring_index(email, '@', -1)
UNION
SELECT MAX(email) AS address1
FROM emaillist
GROUP BY substring_index(email, '@', -1)

您的表中有自动递增列吗?@JW:这有区别吗?@FabianLauer我会用的,请稍候。@FabianLauer下面是我要求自动递增列的原因。
SELECT ID, Email, SUBSTRING_INDEX(EMAIL, '@', -1) Domain
FROM   emaillist a
WHERE  
(
    SELECT  COUNT(*)
    FROM    emaillist e
    WHERE   SUBSTRING_INDEX(e.EMAIL, '@', -1) = SUBSTRING_INDEX(a.EMAIL, '@', -1) AND
            a.ID <= e.ID
) <= 2;
CREATE TABLE emaillist 
(
    ID INT AUTO_INCREMENT PRIMARY KEY,
    EMAIL VARCHAR(50) NOT NULL,
    DOMAIN VARCHAR(15) NOT NULL,
    KEY (DOMAIN)
)