我有一张有几千行的表。该表包含两列,name和email。我有几个重复的行,例如:
name
email
删除所有重复结果的最简单方法是什么。例如,使表的内容为= SELECT name, DISTINCT(email) FROM table。
SELECT name, DISTINCT(email) FROM table
您可以很容易地做到这一点,方法是将该查询选择到另一个表中,然后重命名以替换原来的查询。
CREATE TABLE `table2` ( `name` varchar(255), `email` varchar(255), UNIQUE KEY `email` (`email`)); INSERT INTO `table2` SELECT `name`, DISTINCT(`email`) FROM `table`; RENAME TABLE `table` TO `table1`; RENAME TABLE `table2` TO `table`;
请注意,这CREATE应该调整为您的实际表格格式。我在电子邮件字段上添加了唯一密钥,作为有关如何首先防止重复的建议。
CREATE
或者,您可以遍历此
DELETE FROM `table` WHERE `email` IN ( SELECT `email` FROM `table` GROUP BY `email` HAVING count(*) > 1 ) LIMIT 1
这将删除每个呼叫一个重复的记录。限制的重要性是不要删除任何重复的两行