Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to return distinct domain names from email address values in MySQL?

Tags:

select

mysql

I have a MySQL table with values like:

+--------------+
| user_email   |
+--------------+
| [email protected] |
| [email protected] |
| [email protected] |
| [email protected] |
| [email protected] |
| [email protected] |
+--------------+

I need to return a list of unique domain names from this list of email address, such as:

gmail.com, yahoo.com, other.net

So far, I am using the following SQL statement to select this:

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

However, this only solves half of my problem - it is returning domain names. Using DISTINCT did not do the trick. What am I missing?

FYI: This is running on a LAMP stack. Thanks!

like image 862
Mike Lee Avatar asked Aug 04 '12 01:08

Mike Lee


1 Answers

Just use group by

SELECT SUBSTRING_INDEX(user_email,'@',-1) as domain_name FROM user_email group by domain_name
like image 98
Hawili Avatar answered Nov 08 '22 20:11

Hawili