MySQL no tiene una funcionalidad integrada para hacer lo que está pidiendo. Sería posible definiendo algunas funciones nuevas, pero probablemente sea más fácil hacerlo en cualquier lenguaje de programación a través del cual acceda a la base de datos.
Sin embargo, para algo tan simple como una dirección de correo electrónico, no debería necesitar usar expresiones regulares en absoluto, puede usar SUBSTRING_INDEX()
función
, como:
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 palabras, eso es:
- Nombre de usuario =todo antes de la primera '@'
- Dominio =todo entre la primera '@' y la primera '.'
- TLD =todo después del último '.'