MySQL 在多个字段中查找重复项
MySQL look for duplicates on multiple fields
我有一个 MySQL 数据库,其中包含以下字段:
id, email, first_name, last_name
我想要 运行 一个 SQL 查询,该查询将显示 id 和 email 不止一次存在的行。
基本上,id 和 email 字段应该只有一行,我想 运行 查询是否有任何可能的重复项
你会想要这样的东西:
select field1,field2,field3, count(*)
from table_name
group by field1,field2,field3
having count(*) > 1
另见 this question。
您可以通过分组并使用像这样的 having 子句来搜索满足特定计数的所有 ID:
SELECT id, COUNT(*) AS totalCount
FROM myTable
GROUP BY id
HAVING COUNT(*) > 1;
此查询 returns 中的任何内容均重复。要检查重复的电子邮件,您只需更改您选择的列即可。
如果您只想return重复的 id 和电子邮件,您可以只使用 GROUP BY 查询:
SELECT id, email
FROM yourtable
GROUP BY id, email
HAVING COUNT(*)>1
如果你还想return完整的行,那么你必须加入之前的查询:
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
我有一个 MySQL 数据库,其中包含以下字段:
id, email, first_name, last_name
我想要 运行 一个 SQL 查询,该查询将显示 id 和 email 不止一次存在的行。
基本上,id 和 email 字段应该只有一行,我想 运行 查询是否有任何可能的重复项
你会想要这样的东西:
select field1,field2,field3, count(*)
from table_name
group by field1,field2,field3
having count(*) > 1
另见 this question。
您可以通过分组并使用像这样的 having 子句来搜索满足特定计数的所有 ID:
SELECT id, COUNT(*) AS totalCount
FROM myTable
GROUP BY id
HAVING COUNT(*) > 1;
此查询 returns 中的任何内容均重复。要检查重复的电子邮件,您只需更改您选择的列即可。
如果您只想return重复的 id 和电子邮件,您可以只使用 GROUP BY 查询:
SELECT id, email
FROM yourtable
GROUP BY id, email
HAVING COUNT(*)>1
如果你还想return完整的行,那么你必须加入之前的查询:
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