我有一些需要删除冗余数据的MySQL表。例如:选择具有重复数据的行
id email date data...
1 [email protected] 2012-01-01 my_data
2 [email protected] 2012-01-01 my_data
3 [email protected] 2012-01-02 my_data
4 [email protected] 2012-01-02 my_data (redundant)
5 [email protected] 2012-01-02 my_data
我需要删除多余的行,但我想先选择它们。我发现这个StackOverflow上,但它需要的电子邮件地址
SELECT *
FROM `my_table`
WHERE `id` IN (SELECT `id`
FROM `my_table`
where `email` = '[email protected]'
group by `date`
HAVING count(*) > 1)
我可以使用什么样的查询像上面在嵌入式查询不使用WHERE预选赛,所以我能做到这一点下跌的所有电子邮件地址?
该查询可以是一个SELECT查询。我不介意在PHPMyAdmin中手动删除行。
''' '我可以像上面那样在嵌入式查询中不使用WHERE限定符来使用什么查询,这样我就可以执行所有电子邮件地址了? '''通过这个你是否意味着所有重复的,只是保持一个副本? –
是的,删除所有重复的行,但保留原始行 –