MySQL n'a pas de fonctionnalité intégrée pour faire ce que vous demandez. Cela serait possible en définissant de nouvelles fonctions, mais il est probablement plus simple de le faire dans le langage de programmation par lequel vous accédez à la base de données.
Pour quelque chose d'aussi simple qu'une adresse e-mail, vous ne devriez pas du tout avoir besoin d'utiliser des expressions régulières, vous pouvez utiliser le SUBSTRING_INDEX()
fonction
, comme :
SELECT
SUBSTRING_INDEX(email, '@', 1) AS Username,
SUBSTRING_INDEX(SUBSTR(email, LOCATE('@', email)), '.', 1) AS Domain,
SUBSTRING_INDEX(email, '.', -1) AS TLD
FROM users;
En mots, c'est :
- Nom d'utilisateur =tout avant le premier '@'
- Domaine =tout entre le premier '@' et le premier '.'
- TLD =tout après le dernier '.'