在生产环境中,有时候我们会遇到这样的问题,就是去掉数据库中2列值相同的数据,并且留下一条语句,解决这个问题可以利用唯一联合索引
创建测试表
CREATE TABLE `test03` (
`id` INT(11) ,
`uid` INT(11) DEFAULT NULL);
INSERT INTO test03(id,uid) VALUES (1,1),(1,2),(1,1),(1,2),(1,1);
select * from test03;
id uid
1 1
1 2
1 1
1 2
1 1
创建联合唯一索引
ALTER IGNORE TABLE test03 ADD UNIQUE INDEX id_uid(id,uid);
select * from test03;
id uid
1 1
1 2
这样就能完美的去掉2列重复的数据了
利用sql去重,一般id为主键,不会重复,所以利用id来进行去重
1、首先创建临时表存储重复记录的最大id或者最小id
2、删除id不在临时表中的数据