Mysql 轻松删除SQL表中的重复项

Mysql 轻松删除SQL表中的重复项,mysql,sql,Mysql,Sql,我想轻松删除此表中的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') 我只想保持一排 一个主意 谢谢 您可以找到复制品是什么

我想轻松删除此表中的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')
我只想保持一排

一个主意


谢谢

您可以找到复制品是什么样子的:

SELECT idgroupe, fan, count(*)
FROM mups
GROUP BY idgroupe, fan
HAVING count(*) > 1

您可以了解复制品是什么样的:

SELECT idgroupe, fan, count(*)
FROM mups
GROUP BY idgroupe, fan
HAVING count(*) > 1
如果使用IGNORE关键字在两列上定义唯一索引,MySQL将删除所有记录,但每个记录只有一个副本:

ALTER IGNORE TABLE mups ADD UNIQUE (idgroupe, fan)
如果使用IGNORE关键字在两列上定义唯一索引,MySQL将删除所有记录,但每个记录只有一个副本:

ALTER IGNORE TABLE mups ADD UNIQUE (idgroupe, fan)
如果没有指向此表的外键关系,则可以使用临时表并在其中复制不同的行:

CREATE TABLE temp_mups AS 
SELECT DISTINCT *
FROM mups ;
然后从MUP中删除所有内容:

添加所需的唯一约束:

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中测试:

如果没有指向此表的外键关系,则可以使用临时表并在其中复制不同的行:

CREATE TABLE temp_mups AS 
SELECT DISTINCT *
FROM mups ;
然后从MUP中删除所有内容:

添加所需的唯一约束:

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小提琴中测试:

你认为什么是重复记录?其中IdGype是相同的,FANE是相同的,还是只有它们是相同的?如果它们在表中都是相同的,那么您就创建了具有非列的表,我知道它只是我的表的结构,您认为什么是重复记录?其中idgroupe相同,fan相同,或者只有在它们都相同的情况下?如果它们在表中都相同,则此处您创建的表中的列不是entries我知道这只是我的表的结构我不能只通过一个查询删除所有重复项吗?我不能只通过一个查询删除所有重复项吗?mysql answer me 1062-键“idgroupe”的重复项“0-19306”ALTER IGNORE TABLE MUP添加唯一的idgroupe、fan,但不添加重复项,其中deleted@user1965147:您遇到了一个问题;在上述命令之前发出SET SESSION old_alter_table=1。在上述命令之前仍然获得相同的get SESSION old_alter_table=1服务器:5.5.25a-1~dotdeb.1-logmysql answer me 1062-键“idgroupe”的重复条目“0-19306”alter IGNORE table mups ADD UNIQUE idgroupe,风扇,但没有重复在哪里deleted@user1965147:您遇到了一个问题;在上述命令之前发出SET SESSION old_alter_table=1。在上述命令之前仍然获得相同的GET SET SESSION old_alter_table=1服务器:5.5.25a-1~dotdeb.1-LOG插入mups idgroupe后,风扇选择idgroupe,风扇从temp_mups;我得到的错误重复输入'8147-6460'键'mups_UQ'是的,完全正确。。。!服务器版本:5.5.25a-1~dotdeb.1-log DebianCan您可以尝试插入mups idgroupe,风扇选择DISTINCT idgroupe,风扇从temp_mups;然后我得到了1062-重复输入'15989-8916'键'mups_UQ',您是否意外地运行了插入两次,第一次成功,第二次显示错误?从MUP中选择COUNT*是什么;显示并从MUP中选择*;显示结果?插入MUP idgroupe后,风扇选择idgroupe,风扇从临时MUP;我得到的错误重复输入'8147-6460'键'mups_UQ'是的,完全正确。。。!服务器版本:5.5.25a-1~dotdeb.1-log DebianCan您可以尝试插入mups idgroupe,风扇选择DISTINCT idgroupe,风扇从temp_mups;然后我得到了1062-重复输入'15989-8916'键'mups_UQ',您是否意外地运行了插入两次,第一次成功,第二次显示错误?从MUP中选择COUNT*是什么;显示并从MUP中选择*;显示结果?