我有名为emails
的mysql表,其中多列如
"first_name","last_name","email","contact"
我在此表中拥有大量数据,其中包含许多多个电子邮件ID。 我希望这些数据在其他行中没有任何单个电子邮件时是唯一的。
请分享如何为它编写SQL查询
由于 第
答案 0 :(得分:1)
首先,您可能需要使用以下查询查找重复电子邮件列表。
select email, COUNT(*) as cnt
FROM emails
group by email
order by cnt desc
查询将提供电子邮件和重复次数。然后根据哪条记录有效,采取删除步骤。
答案 1 :(得分:1)
使用此
SELECT * FROM emails
WHERE email IN (
SELECT DISTINCT email
FROM emails
WHERE email IN (
SELECT COUNT(*) AS [Number],
email,
first_name,
last_name,
contact
FROM emails
GROUP BY email, first_name, last_name, contact
)
)
然后,如果它返回正确的结果,请使用此
DELETE FROM emails
WHERE email IN (
SELECT DISTINCT *
FROM emails
WHERE email IN (
SELECT COUNT(*) AS [Number],
email,
first_name,
last_name,
contact
FROM emails
GROUP BY email, first_name, last_name, contact
)
)