我有一个像这样的用户表。用户可以通过不同的电子邮件地址进行注册,即 abc@xyz.com
和 abc@uvw.com
。我需要从电子邮件中获取不同域的数量。我的users
表结构是
+----+------------------+------------------------+
| id | name | email |
+----+------------------+------------------------+
| 3 | shamsreza | shamsreza@abc.in |
| 4 | Kamal | kamalkumar@xyz.com |
| 6 | BIBHUDATTA SAHOO | admin@uvw.com |
| 7 | Bibhu Once Again | bibhuduttasahoo@xyz.in |
+----+------------------+------------------------+
我是这样查询的
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
是重复的,我需要不同域的计数。
最佳答案
为了获得不同的结果,您可以使用 DISTINCT。
select distinct substring(email,LOCATE('@',email),LENGTH (email)) from users
或者如果您想计算它们:
select count(distinct substring(email,LOCATE('@',email),LENGTH (email))) from users
关于php - MySql 获取不同域的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46336743/