Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment sélectionner un nom de domaine à partir d'une adresse e-mail

En supposant que le domaine est un domaine à un seul mot comme gmail.com, yahoo.com, utilisez

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

Le SUBSTR interne obtient la partie droite de l'adresse e-mail après @ et le SUBSTRING_INDEX externe coupera le résultat à la première période.

sinon si le domaine doit contenir plusieurs mots comme mail.yahoo.com , etc, utilisez :

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)) obtiendra la longueur du domaine moins le TLD (.com, .biz etc. part) en utilisant SUBSTRING_INDEX avec un décompte négatif qui se calculera de droite à gauche.