MySQL:从电子邮件地址字段中计算唯一域名的查询

MySQL:从电子邮件地址字段中计算唯一域名的查询

在处理大量电子邮件地址数据时,有时需要统计邮件地址中涉及到的唯一域名数量。在MySQL中编写一个查询可以非常方便地完成这项任务。

阅读更多:MySQL 教程

示例

假设有一个名为email的表,其中包含邮件地址信息。表结构如下:

CREATE TABLE `email` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `address` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
SQL

可以通过以下代码向表中插入模拟数据:

INSERT INTO `email` (`address`)
VALUES
    ('alice@example.com'),
    ('bob@example.net'),
    ('carol@example.org'),
    ('dave@example.net'),
    ('eve@example.com'),
    ('frank@example.net');
SQL

现在需要确定所有邮件地址中涉及到的唯一域名数量。为了解决这个问题,可以使用以下查询:

SELECT COUNT(DISTINCT SUBSTRING_INDEX(`address`, '@', -1)) AS `Unique Domains`
FROM `email`;
SQL

执行上述查询后,应该得到以下结果:

Unique Domains
3

这说明在email表中,一共涉及到了3个唯一的域名:example.comexample.net,和example.org

总结

使用MySQL的DISTINCTSUBSTRING_INDEX函数,可以很容易地计算邮件地址字段中涉及到的唯一域名数量。在处理具有大量电子邮件地址的数据集时,这种查询是非常有用的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册