我想轻松删除此表中的duplice条目
CREATE TABLE IF NOT EXISTS `mups` (
`idgroupe` varchar(15) NOT NULL,
`fan` bigint(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
示例:
如果我有3个条目
('36','143')
('36','143')
('36','143')
我只想保留一行
一个想法?
谢谢!
答案 0 :(得分:2)
如果使用UNIQUE
关键字在两列上定义IGNORE
索引,MySQL将删除除每条记录的一个副本之外的所有索引:
ALTER IGNORE TABLE mups ADD UNIQUE (idgroupe, fan)
答案 1 :(得分:1)
如果没有指向此表的外键关系,您可以使用(临时)表并在那里复制不同的行:
CREATE TABLE temp_mups AS
SELECT DISTINCT *
FROM mups ;
然后从mups
删除所有内容:
DELETE
FROM mups ;
添加您想要的UNIQUE
约束:
ALTER TABLE mups
ADD CONSTRAINT mups_UQ
UNIQUE (idgroupe, fan) ;
获取数据:
INSERT INTO mups
(idgroupe, fan)
SELECT idgroupe, fan
FROM temp_mups ;
安全地放下临时表:
DROP TABLE temp_mups ;
在SQL-Fiddle中测试: test-1
答案 2 :(得分:0)
你可以找出重复的内容:
SELECT idgroupe, fan, count(*)
FROM mups
GROUP BY idgroupe, fan
HAVING count(*) > 1