gaofeng0210 发表于 2018-10-1 12:25:57

mysql利用唯一索引去重

  在生产环境中,有时候我们会遇到这样的问题,就是去掉数据库中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 >  select * from test03;
  id    uid
  1    1
  1    2
  这样就能完美的去掉2列重复的数据了
  利用sql去重,一般id为主键,不会重复,所以利用id来进行去重
  1、首先创建临时表存储重复记录的最大id或者最小id
  2、删除id不在临时表中的数据

页: [1]
查看完整版本: mysql利用唯一索引去重