我一直在寻找解决问题的方法,但是我找不到与我需要做的完全匹配的东西。
我有一个数据库的slug
列有重复的条目。我需要删除所有重复项,但将该行的第一次出现保留在数据库中。我不能只保留id
列的最低数字,因为它们在数据库中的顺序不同例如。。。
id slug
--------- -----------
4 example-1
3 example-1
2 example-1
1 example-1
5 example-1
我需要保持slug的
id
为5,并删除所有其他字段的slug
为示例1。这有可能吗? 最佳答案
不确定是否有语法可以一步完成。
但可以肯定的是,它可以通过两个简单的步骤来解决。
首先选择要保留在临时表中的行。
SELECT max(id), slug
FROM your_table
GROUP BY slug
然后只需删除不在临时表中的所有行:
DELETE FROM your_table WHERE id NOT IN (SELECT id FROM temp_table)
关于mysql - MYSQL删除重复记录但在数据库中保留第一次出现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28678536/