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

グループ化を使用するだけです

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 に答える