MYSQL如何从表中选择所有电子邮件,但限制同一域的电子邮件数量
正如主题所示,我想选择列表中的所有电子邮件。但要限制同一域名的电子邮件数量 假设我有500个gmail地址 和2个example.com地址 。。等等 我只想抓取两个相同域的地址 有了这个字符串,我可以选择每个域上累积的域数,这样也许我可以用这个字符串做些什么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
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)
)