Validando emails com o MySQL
Aprenda a validar e-mails utilizando o MySQL
Se você tem uma tabela e deseja validar se os e-mails cadastrados estão no formato correto, pode fazer uma consulta utiilzando expressões regulares. Vamos ver como fazer validação de e-mails no MySQL.
Aqui tem um exemplo de como fazer esta validação:
SELECT * FROM minha_tabela WHERE email NOT REGEXP '^[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9._-]@[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9].[a-zA-Z]{2,63}$'
Um outro exemplo que pode ser útil e verificar qual a quantidade de e-mails cadastrados por domínio. Para isso, precisamos utilizar funções de texto para extrair o nome de domínio (que fica depois da @) e agrupar os resultados. A query a seguir faz esta verificação
SELECT
RIGHT(email, LENGTH(email) - LOCATE('@', email)) Dominio ,
COUNT(email) Total
FROM minha_tabela
GROUP BY RIGHT(email, LENGTH(email) - LOCATE('@', email))
ORDER BY Total DESC
Os resultados são ordenados mostrando primeiro os dominios com a maior quantidade de e-mails.
Caso você queira fazer uma consulta para separar o nome do usuário do dominio, pode fazer da seguinte forma:
SELECT
left(email, LOCATE('@', email) - 1) Usuario,
RIGHT(email, LENGTH(email) - LOCATE('@', email)) Dominio ,
FROM minha_tabela