2017-09-21 43 views
0

我有這樣的用戶表。用戶可以從不同的電子郵件登記,即[email protected][email protected]。我需要從電子郵件中獲取不同域的數量。我users表結構MySql獲得不同的域的計數

+----+------------------+------------------------+ 
| id | name    | email     | 
+----+------------------+------------------------+ 
| 3 | shamsreza  | [email protected]  | 
| 4 | Kamal   | [email protected]  | 
| 6 | BIBHUDATTA SAHOO | [email protected]   | 
| 7 | Bibhu Once Again | [email protected] | 
+----+------------------+------------------------+ 

我問這樣

select substring(email,LOCATE('@',email),LENGTH (email)) from users 

它給我的輸出

+---------------------------------------------------+ 
| substring(email,LOCATE('@',email),LENGTH (email)) | 
+---------------------------------------------------+ 
| @uvw.com           | 
| @xyz.com           | 
| @xyz.com           | 
| @abc.in           | 
+---------------------------------------------------+ 

但這裏xyz.com重複,我需要不同的域的數量。

+1

你嘗試過'選擇不同的子串(電子郵件,查找( '@',郵件),長度(電子郵件))從users' – Cashbee

+0

@Cashbee好的,明白了,我可以像這樣使用'select COUNT(來自用戶的不同子字符串(email,LOCATE('@',email),LENGTH(email))) –

+0

@Cashbee感謝回覆 –

回答

1

爲了獲得不同的結果,可以使用DISTINCT。

select distinct substring(email,LOCATE('@',email),LENGTH (email)) from users 

或在情況下,你要指望他們:

select count(distinct substring(email,LOCATE('@',email),LENGTH (email))) from users 
+0

感謝回答 –