mysql删除重复数据
2014-03-03 11:39
363 查看
场景:
有一个活动成员表,有活动Id和成员Id列,要求处理掉重复的成员,即同一活动下,去掉活动Id和成员Id重复的记录。
表结构:
插入数据:
查找多余的重复数据:
删除多余的重复数据:
有一个活动成员表,有活动Id和成员Id列,要求处理掉重复的成员,即同一活动下,去掉活动Id和成员Id重复的记录。
表结构:
-- ---------------------------- -- Table structure for `MEMBER` -- ---------------------------- DROP TABLE IF EXISTS `MEMBER`; CREATE TABLE `MEMBER` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `ACTIVITY_ID` int(11) DEFAULT NULL, `USER_ID` int(11) DEFAULT NULL, PRIMARY KEY (`ID`), KEY `FK_Reference_32` (`ACTIVITY_ID`) USING BTREE, KEY `INDEX_ACTMEB_USER` (`USER_ID`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1448271 DEFAULT CHARSET=utf8
插入数据:
-- ---------------------------- -- Records of MEMBER -- ---------------------------- INSERT INTO `MEMBER` VALUES ('1', '1', '11001'); INSERT INTO `MEMBER` VALUES ('2', '1', '11001'); INSERT INTO `MEMBER` VALUES ('3', '1', '37001'); INSERT INTO `MEMBER` VALUES ('4', '2', '37002'); INSERT INTO `MEMBER` VALUES ('5', '2', '37002'); INSERT INTO `MEMBER` VALUES ('6', '1', '37001');
查找多余的重复数据:
SELECT m1.* FROM MEMBER m1,( SELECT ID,ACTIVITY_ID,USER_ID FROM MEMBER GROUP BY ACTIVITY_ID,USER_ID HAVING COUNT(1) > 1 ) AS m2 WHERE m1.ACTIVITY_ID = m2.ACTIVITY_ID AND m1.USER_ID = m2.USER_ID AND m1.ID <> m2.ID
删除多余的重复数据:
DELETE m1 FROM MEMBER m1,( SELECT ID,ACTIVITY_ID,USER_ID FROM MEMBER GROUP BY ACTIVITY_ID,USER_ID HAVING COUNT(1) > 1 ) AS m2 WHERE m1.ACTIVITY_ID = m2.ACTIVITY_ID AND m1.USER_ID = m2.USER_ID AND m1.ID <> m2.ID
相关文章推荐
- Mysql 查询表中重复数据和删除表中重复的数据
- MySQL中删除重复数据只保留一条
- mysql查询表里的重复数据方法和删除重复数据
- MySQL中删除重复数据只保留一条
- MySQL中删除重复数据只保留一条
- MYSQL删除重复数据的简单方法
- mysql删除重复数据的sql
- MySQL中删除重复数据只保留一条
- MySQL 删除数据库中重复数据(以部分数据为准)
- MySql-如何查询删除数据表重复记录
- mysql学习总结一当数据不存在的时候插入,存在的时候进行更新,删除重复数据
- mysql删除重复数据
- mysql、oracle删除重复数据
- mysql中 删除重复数据
- mysql 删除重复数据只保留一条
- MySQL删除重复数据 并保留ID最大值
- MySQL下删除重复记录只保留一条数据
- MYSQL 删除重复数据。。
- 高性能可扩展mysql(执行计划,索引分析优化改写,删除重复数据,区间统计,满查询日志)
- MySQL中删除重复数据只保留一条