This question already has answers here:
How can I remove duplicate rows?
                                
                                    (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 indexesUnique indexes的工作方式与primary keys相同。尽管只能有一个primary key,但unique indexes可以有尽可能多的列数,这样,您可以提高当前列唯一性的安全性,而不必重复。

08-17 19:41
查看更多