如何使用 PHPMyAdmin 删除 MySQL 中的重复行?

How do I remove duplicate rows in MySQL using PHPMyAdmin?

我有一个名为 'master_database' 的数据库和一个名为 'info'

的 table

在 'info' table 中,我有多个记录,我需要 'email' 字段不包含任何重复项,但目前确实如此。我可以使用什么 SQL 命令 运行 删除这些重复项?

你可以用这个知道重复的行:

SELECT email, COUNT(email) FROM info GROUP BY email HAVING COUNT(email) > 1 
DELETE FROM master_database.info WHERE info.ID NOT IN (SELECT MAX(info.ID) FROM master_database.info GROUP BY info.email HAVING COUNT(info.email) > 1)

这假设您在 table 中有一个唯一 ID,其中数字越大,记录越晚,如果您有 last_edited 时间戳,最好使用它的 MAX。

请先测试! 运行 测试以下内容:

SELECT * FROM master_database.info WHERE info.ID NOT IN (SELECT MAX(info.ID) FROM master_database.info GROUP BY info.email HAVING COUNT(info.email) > 1)

这些值将被删除。

如果您根本没有唯一字段(即行确实重复,以下方法将起作用):

转到相关 table。 创建 select 查询以仅 select 相关的重复行对。 修改查询以删除但添加限制,例如: 从 [table name] 中删除 [fieldname]LIKE '[value]' AND [fieldname]LIKE '[value]' LIMIT 1 在使用查询删除重复对中的一个之前模拟检查效果,或者如果有超过一对重复项则重复使用

转到相关 table。 创建 select 查询以仅 select 相关行。 复制查询供以后粘贴。 查询结果底部的导出按钮将只导出查询结果。 向后粘贴查询但对其进行修改以删除这些行。 复制重复行之一的导出插入查询,以在没有重复行的情况下重新插入。