我在 MySQL 中有一个用户表。
id | username | email
我想根据电子邮件地址获取重复用户的 ID。所以基本上是在表格中找到email地址可以找到1次以上的用户的Id。
我是这样写的:
SELECT id
FROM users as users
WHERE (
SELECT count(id)
FROM users as users2
WHERE users.email = users2.email
) > 1
它工作正常,但速度很慢,因为查询似乎没有使用索引。还有其他想法吗?谢谢!
最佳答案
解决办法:
select u.id
from users as u
inner join
( SELECT email
FROM users
GROUP BY users.email
HAVING count(id) > 1
) as u2 on u2.email = u.email
关于MySQL用户表: find rows that have the same email address,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4872056/