How to select domain name from email address

后端 未结 13 2469
半阙折子戏
半阙折子戏 2020-12-08 02:05

I have email addresses like user1@gmail.com, user2@ymail.com user3@hotmail.com ... etc. I want a Mysql SELECT that will trim user name

相关标签:
13条回答
  • 2020-12-08 02:49

    For PostgreSQL:

    split_part(email, '@', 2) AS domain
    

    Full query:

    SELECT email, split_part(email, '@', 2) AS domain
    FROM users;
    

    Ref: http://www.postgresql.org/docs/current/static/functions-string.html

    Credit to https://stackoverflow.com/a/19230892/1048433

    0 讨论(0)
  • 2020-12-08 02:49
    DECLARE @Email Varchar(20)
    SET @Email='abc@gmail.com'
    SELECT RIGHT(@Email,LEN(@Email)-CHARINDEX('@',@Email))
    
    0 讨论(0)
  • 2020-12-08 02:51

    My suggestion would be (for mysql):

    SELECT 
        LOWER(email) AS email,
        SUBSTRING_INDEX(email, '@', + 1) AS account,
     REPLACE(SUBSTRING_INDEX(email, '@', -1), CONCAT('.',SUBSTRING_INDEX(email, '.', -1)),'') -- 2nd part of mail - tld.
      AS domain,
        CONCAT('.',SUBSTRING_INDEX(email, '.', -1)) AS tld
    FROM
    ...
    ORDER BY domain, email ASC;

    0 讨论(0)
  • 2020-12-08 02:52

    select SUBSTR(email, instr(email, '@') +1, instr(email,'.') -3) from task24;

    exact answer is coming using this query

    0 讨论(0)
  • 2020-12-08 02:53
    DECLARE @Email Varchar(20)
    SET @Email='abc@gmail.com'
    SELECT SUBSTRING(@Email, CHARINDEX('@',@Email)+1,LEN(@Email))
    
    0 讨论(0)
  • 2020-12-08 02:54

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

    Some sql statements require the table name specified where the email column belongs to.

    0 讨论(0)
提交回复
热议问题