我正在制作一个脚本,以确定我们数据库中哪些电子邮件提供商最受欢迎。 URL链接是表的名称,'contact_email'是与链接关联的联系电子邮件地址。
我写了以下MySQL查询
SELECT
url_links.contact_email,count(url_links.contact_email)
FROM
url_links
group by contact_email order by count(url_links.contact_email) DESC
此查询会返回所有电子邮件以及提交商家信息的人的计数。我想做的是修改MySQL脚本,以便它给我一个整个提供者的计数。即Gmail.com,Yahoo.com,Hotmail.com等。
我可以将整个数组读入PHP并在@符号上进行“爆炸”并将其分组,但是我很好奇社区是否知道如何修改此脚本,以便每次发送电子邮件而不是计数地址 - 它通过
返回组中Gmail,Yahoo等所有电子邮件地址的计数Aka a'Group By Substring',其中所有项目将按“@”符号后的所有内容进行分组。
谢谢!
答案 0 :(得分:1)
您可以按以下方式进行分组和计数:
right(url_links.contact_email, length(url_links.contact_email)-INSTR(url_links.contact_email, '@'))
这样的事情应该有效:
SELECT
right(url_links.contact_email, length(url_links.contact_email)-INSTR(url_links.contact_email, '@')), count(right(url_links.contact_email, length(url_links.contact_email)-INSTR(url_links.contact_email, '@')))
FROM
url_links
group by right(url_links.contact_email, length(url_links.contact_email)-INSTR(url_links.contact_email, '@')) order by count(right(url_links.contact_email, length(url_links.contact_email)-INSTR(url_links.contact_email, '@'))) DESC