1. 问题描述

有时load或者insert操作导致 表数据有重复

2. 解决方案

通过临时表、主键id、倒腾去重

示例

2.1 create table student(

  name varchar(30) not null default '',

age smallint(3) not null default 0,

  love varchar(50) not null default ''

)

插入一些数据......(包含重复)

insert into student(name,age,love) values('zhangsan',15,'basketball');

insert into student(name,age,love) values('zhangsan',15,'basketball');

insert into student(name,age,love) values('zhangsan',15,'basketball');

2.2 备份(全部数据或部分数据)

create table student_backup like student;

insert into student_backup select * from student where name='zhangsan';

2.3 创建临时表一
create table student_tmplike student;

insert into student_tmp select * from student where name='zhangsan';

alter table student_tmp add id int primary key auto_increment not null ;

2.4 创建临时表二

create table tmp2 (

id int auto_increment not null,

primary key(id)

);

insert into tmp2 select min(id) as id from student_tmp group by name,age,love;

2.5 创建临时表三

create table tmp3 like student_tmp;

insert into tmp3 select student_tmp.* from student_tmp,tmp2 where student_tmp.id=tmp2.id;

alter table tmp3 drop column id;

2.6 删除重复数据

delete from student where name='zhangsan';

2.7 插入去重后数据

insert into student select * from tmp3;

Done!

更多相关文章

  1. 记一次无备份恢复Mysql误删用户数据
  2. 在Postgres STRING_AGG中对条件数据进行排序
  3. SQL数据库基础(四)
  4. 怎样在办公网络通过跳板机获取生产环境的MySQL数据
  5. 新手求学:用VF如何去添加、删除、修改SQL Server服务器数据库中表
  6. Ms sql 2005 中的bit 数据类型
  7. 从Visual Studio 2012访问Netezza SQL数据库时出错
  8. 烂泥:Wing FTP Server与mysql数据库整合
  9. 如何用SQL语句在一个已有数据库内新建一个表?

随机推荐

  1. Android小项目合集(经典教程)包含十五个And
  2. android studio 如何修改app名字、修改ap
  3. Android 平台基础开发简介
  4. Android平台开发-Android HAL develop-An
  5. 基于WiEngine游戏引擎--背景移动
  6. Android Studio Android UI控件学习笔记
  7. Android中的相对布局详解
  8. Android(安卓)Launcher2 icon大小修改
  9. Android手机操作系统中的常用术语
  10. Android 核心分析(13) -----Android GWES