MySQL在多个字段中查找重复项

时间:2015-02-20 18:21:38

标签: mysql select

我有一个包含以下字段的MySQL数据库:

id, email, first_name, last_name

我想运行一个SQL查询,该查询将显示不止一次存在id和email的行。

基本上,id和email字段应该只有一行,我想运行查询以查看是否有任何可能的重复

3 个答案:

答案 0 :(得分:0)

你会想要这样的东西:

select field1,field2,field3, count(*)
from table_name
group by field1,field2,field3
having count(*) > 1

另见this question

答案 1 :(得分:0)

您可以通过对这些ID进行分组并使用如下的having子句来搜索满足特定计数的所有ID:

SELECT id, COUNT(*) AS totalCount
FROM myTable
GROUP BY id
HAVING COUNT(*) > 1;

此查询返回的任何内容都有重复。要检查重复的电子邮件,您只需更改要选择的列。

答案 2 :(得分:0)

如果您只想返回重复的ID和电子邮件,可以使用GROUP BY查询:

SELECT id, email
FROM yourtable
GROUP BY id, email
HAVING COUNT(*)>1

如果您还想返回完整行,则必须加入上一个查询:

SELECT yourtable.*
FROM
  yourtable INNER JOIN (
    SELECT id, email
    FROM yourtable
    GROUP BY id, email
    HAVING COUNT(*)>1
  ) s
  ON yourtable.id = s.id AND yourtable.email=s.email