2010-02-11 35 views

回答

3

像这样的事情可能?

SELECT `email` 
FROM `users` 
WHERE `email` 
REGEXP '[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}' 
GROUP BY `email` 

正则表达式来自here。正如该网站指出的,这可能不符合所有有效的电子邮件(即不明确的电子邮件)。我最后一次查看它时,我不确定是否有人创建了一个可以匹配每个可能的电子邮件地址的正则表达式。

+1

如果你要使用正则表达式,为什么不使用全所提供的同一页面上? (:[A-Z0-9#$%& '* +/=^_'{|}〜 - +(?!\ [A-Z0-9#$%&!]'?* +/?=^_'{|}〜 - ] +)* |“(?:[\ x01- \ X08 \ X0B \ X0C \ x0e- \ X1F \ X21 \ x23- \ x5b \ x5d- \ 0x7F部分] | \\ [\ x01- \ X09 \ X0B \ X0C \ x0e- \ 0x7F部分])*“)@(:(:[α-Z0-9](:???[A-Z0-9 - ] * [A-Z0 ?-9])\)+ [A-Z0-9](:???[A-Z0-9 - ] * [A-Z0-9])| \ [(:(?: 25 [O- 5] | 2 [0-4] [0-9] |?[01] [0-9] [0-9])\){3}(?: 25 [0-5] | 2 [0 -4] [0-9] | [01] [0-9] [0-9] | [A-Z0-9 - ] * [A-Z0-9]:???(:[\ x01- \ x08 \ x0b \ x0c \ x0e- \ x1f \ x21- \ x5a \ x53- \ x7f] | \\ [\ x01- \ x09 \ x0b \ x0c \ x0e- \ x7f])+)\]) – 2010-02-11 20:02:20

+0

那还没有完整的一个,全长是6300+字符长 – 2010-02-11 20:03:22

+0

这是完美的,我没有真正想到正则表达式。谢谢! – jwzk 2010-02-11 20:07:01

1

您无法检查电子邮件是否对mysql有效。

您可以用不同的选择选择所有独特的电子邮件:

SELECT DISTINCT `e-mailadress`FROM `table1` //something like this 
1

如果你希望他们的号码,你会怎么做

SELECT COUNT(DISTINCT('EMAIL')) FROM 'TABLE' 
+0

我确实需要知道在这种情况下它们是否有效。 – jwzk 2010-02-11 20:02:26

+1

您可以使用下面建议的正则表达式... – t00ny 2010-02-11 20:04:20

相关问题