一尘不染

如何从电子邮件地址中选择域名

mysql

我有一个电子邮件地址user1@gmail.comuser2@ymail.com user3@hotmail.com…等等。我想一个MySQL
SELECT,将修剪的用户名和.com和返回输出 gmailymailhotmail,等。


阅读 550

收藏
2020-05-17

共1个答案

一尘不染

假设该域是单个单词域,例如gmail.com,yahoo.com,请使用

select (SUBSTRING_INDEX(SUBSTR(email, INSTR(email, '@') + 1),'.',1))

内部人员SUBSTR将在之后获得电子邮件地址的正确部分,@而外部人员SUBSTRING_INDEX将在第一个期间切断结果。

否则,如果domain应该包含多个单词,例如mail.yahoo.com,请使用:

select (SUBSTR(email, INSTR(email, '@') + 1, LENGTH(email) - (INSTR(email, '@') + 1) - LENGTH(SUBSTRING_INDEX(email,'.',-1))))

LENGTH(email) - (INSTR(email, '@') + 1) - LENGTH(SUBSTRING_INDEX(email,'.',-1))(.com, .biz etc. part)通过使用SUBSTRING_INDEX负计数获得域的长度减去TLD ,该负计数将从右到左计算。

2020-05-17