O MySQL não possui funcionalidade interna para fazer o que você está pedindo. Seria possível definindo algumas novas funções, mas provavelmente é mais fácil fazê-lo em qualquer linguagem de programação através da qual você esteja acessando o banco de dados.
No entanto, para algo tão simples como um endereço de e-mail, você não precisa usar expressões regulares, você pode usar o
SUBSTRING_INDEX()
função
, 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;
Em palavras, é:
- Nome de usuário =tudo antes do primeiro '@'
- Domínio =tudo entre o primeiro '@' e o primeiro '.'
- TLD =tudo após o último '.'