在不具有主键的表中删除重复的行(Remove duplicate rows in a table h

2019-08-07 02:21发布

我有一个包含类似项目表项目

name
------
alpha
alpha 
beta
charlie
charlie

在这种情况下,我怎么会删除重复的行,但一个记录应保持。 上表没有任何主键。

Answer 1:

试试这个

DELETE FROM item WHERE GREATEST(0,@num := IF(NAME = @NAME, @num + 1, 0),LEAST(0, LENGTH(@NAME := NAME)))>0


Answer 2:

重新创建该表:

RENAME TABLE `testTable` TO `testTable2`;

CREATE TABLE `testTable` 
SELECT DISTINCT `name` FROM `testTable2`;

您的字段添加唯一索引

ALTER IGNORE TABLE `tableName` 
    ADD UNIQUE INDEX (`name`)


文章来源: Remove duplicate rows in a table having no primary key