This question already has answers here:
How can I remove duplicate rows?
(37个答案)
2年前关闭。
如何删除mysql上所有重复的行,并保留与查询之一?
表名是:transaction
我重复的行:
正确的行:
(37个答案)
2年前关闭。
如何删除mysql上所有重复的行,并保留与查询之一?
表名是:transaction
我重复的行:
reference type
--------- --------
1 9
1 10
1 10
1 10
1 11
1 11
正确的行:
reference type
--------- --------
1 9
1 10
1 11
最佳答案
ALTER IGNORE TABLE `transaction`
ADD UNIQUE INDEX (`col_1`, `col_2`);
ALTER
:用于修改表。IGNORE
:如果正在使用IGNORE
,则仅使用重复行的第一行。因此,其余行将被删除。ADD UNIQUE INDEX
:为了防止重复,我们在当前列中分别添加unique indexes
。 Unique indexes
的工作方式与primary keys
相同。尽管只能有一个primary key
,但unique indexes
可以有尽可能多的列数,这样,您可以提高当前列唯一性的安全性,而不必重复。