7

我有一个 MySQL 表,其值如下:

+--------------+
| user_email   |
+--------------+
| ab@gmail.com |
| cd@gmail.com |
| ef@yahoo.com |
| gh@yahoo.com |
| ij@gmail.com |
| kl@other.net |
+--------------+

我需要从这个电子邮件地址列表中返回一个唯一域名列表,例如:

gmail.com、yahoo.com、other.net

到目前为止,我正在使用以下 SQL 语句来选择它:

SELECT SUBSTRING_INDEX(user_email,'@',-1)

然而,这只解决了我的一半问题——它正在返回域名。使用 DISTINCT 并没有成功。我错过了什么?

仅供参考:这是在 LAMP 堆栈上运行的。谢谢!

4

2 回答 2

17

只需使用 group by

SELECT SUBSTRING_INDEX(user_email,'@',-1) as domain_name FROM user_email group by domain_name
于 2012-08-04T01:25:47.600 回答
0

SELECT split_part (email,'@',2) as domain_name FROM pytest.emps group by domain_name;

于 2021-12-28T17:51:45.050 回答