php - MySQL 按计数子字符串分组

标签 php mysql

我正在编写一个脚本来识别我们数据库中哪些电子邮件提供商最受欢迎。 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 等中所有电子邮件地址的计数

又名“按子字符串分组”,其中所有项目将按“@”符号之后的所有内容进行分组。

谢谢!

最佳答案

您可以按以下方式分组和计数:

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

关于php - MySQL 按计数子字符串分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39576817/

相关文章:

java - HTTP POST 到 MySQL 数据库 AyncTask 错误。强制关闭

mysql - mysql中的舍入 float 有什么问题?

php - 没有收到要导入的数据

php - Mysql 服务器在 LONGBLOB 中存储大型 (2MB) 音频文件时消失了

php - Magento 社区 1.7.0.2 - 导出产品 CSV

php - 在 WordPress 插件中从 PHP 代码写入 UTF-8 JSON 文件

php - 如何使用 Razorpay PHP API 获取付款详情?

php - 如何从数据库中取出与用户选择的值相关的值?

php - 优化mysql随机查询

mysql - 无法在 MYSQL 5.5 w/MYSQL Workbench 中更改模式名称