usar servidor mail hostinger gratis enviar correo configurar como email mysql count dns

email - servidor - MySQL Query para contar dominios exclusivos desde el campo Dirección de correo electrónico



usar gmail como servidor de correo (7)

Me gustaría tener una mejor idea de qué dominios están usando mis clientes. Podría hacer esto fácilmente en PHP explode cada dirección y contando el dominio de esa manera. Pero me pregunto si hay una forma de obtener esta información con solo una simple consulta de MySQL.

Este es el resultado de la muestra:

gmail.com | 3942

yahoo.com | 3852

hotmail.com | 209

... y así sucesivamente, donde la primera columna es el dominio de direcciones de correo electrónico, y la segunda columna es el número de direcciones en ese dominio.



Agregar ORDER BY a la respuesta de WoLpH hace que la salida sea más clara:

SELECT substring_index(email, ''@'', -1), COUNT(*) AS MyCount FROM `database`.`table` GROUP BY substring_index(email, ''@'', -1) ORDER BY MyCount DESC;


Deberías hacer algo como esto:

SELECT substring_index(email, ''@'', -1) domain, COUNT(*) email_count FROM table GROUP BY substring_index(email, ''@'', -1) -- If you want to sort as well: ORDER BY email_count DESC, domain;


Pequeño ajuste al original de Wolph arriba para acortar un poco y agregar un buen nombre de columna y limitar los resultados en la lista de casos es larga. Ajuste el límite a su gusto

select substring_index(email, ''@'', -1) AS domain, count(*) from TABLE group by domain order by count(*) DESC limit 40;


Puede usar esta consulta para obtener el recuento único de dominio de la tabla.

SELECT substr(email,INSTR(email,"@")+1),count(substr(email,INSTR(email,"@"))) from YOUR_TABLE group by substr(email,INSTR(email,"@"));


SELECT substring_index(email_address, ''@'', -1) AS Domain ,COUNT(*) AS MyCount FROM database_name.table_name GROUP BY substring_index(email_address, ''@'', -1) ORDER BY MyCount DESC


select distinct SUBSTRING(Email, CHARINDEX(''@'', Email) + 1,LEN(Email) - CHARINDEX (''@'', Email)), Count(*) from Tbl_name Group by SUBSTRING(Email, CHARINDEX(''@'', Email) + 1,LEN(Email) - CHARINDEX (''@'', Email)) order by Count(*) desc