Mysql
 sql >> Database >  >> RDS >> Mysql

Come selezionare il nome di dominio dall'indirizzo email

Supponendo che il dominio sia un dominio di una sola parola come gmail.com, yahoo.com, usa

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

Il SUBSTR interno ottiene la parte destra dell'indirizzo email dopo @ e il SUBSTRING_INDEX esterno taglierà il risultato al primo periodo.

altrimenti se il dominio dovrebbe contenere più parole come mail.yahoo.com , ecc, usa:

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)) otterrà la lunghezza del dominio meno il TLD (.com, .biz etc. part) utilizzando SUBSTRING_INDEX con un conteggio negativo che calcolerà da destra a sinistra.