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

时间:2015-03-09 16:15:07

标签: mysql phpmyadmin sql-update

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

在'info'表中我有多条记录,我需要'email'字段不包含任何重复项,但目前它有。我可以运行什么SQL命令来删除这些重复项?

3 个答案:

答案 0 :(得分:1)

您可以通过以下方式了解重复的行:

SELECT email, COUNT(email) FROM info GROUP BY email HAVING COUNT(email) > 1 

答案 1 :(得分:-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)

这假设你在表中有一个唯一的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)

这些值将被删除。

答案 2 :(得分:-1)

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

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

转到相关表格。 创建选择查询以仅选择相关行。 复制查询以供以后粘贴。 查询结果底部的导出按钮将仅导出查询结果。 将查询粘贴回但修改它以删除这些行。 复制重复行之一的导出插入查询以重新插入而不重复。