我的数据库中有三个字段:名字、姓氏和电子邮件。电子邮件是我的主键。我的数据库中没有其他字段。
我需要找到一个mysql查询,它可以从数据库中删除重复的主键及其值,只在数据库中留下一个唯一的电子邮件。
我使用以下命令显示所有重复的主键。它工作了,但我需要删除所有其他重复的条目,只保留一个。我正在使用php编程。
SELECT *
FROM table_name
WHERE primarykey IN (
SELECT primarykey
FROM table_name
GROUP BY primarykey
HAVING count(primarykey) > 1
)
ORDER BY primarykey
最佳答案
使用GROUPBY、HAVING和MAX在其他列上填充要保留的临时表。然后运行删除过多内容的查询,然后将复制的内容放回。然后把它变成真正的PK,这样就不会再发生了。