场景:

爬取的数据生成数据表,结构与另一个主表相同,需要进行合并+去重

解决:(直接举例)

首先创建两个表pep,pep2,其中pep是主表

CREATE TABLE IF NOT EXISTS `pep/pep2`(

`id` INT UNSIGNED AUTO_INCREMENT,

`no` VARCHAR(100) NOT NULL,

PRIMARY KEY ( `id` )

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后向pep中插入两条数据,pep2中插入一条与pep中相同的一条数据

insert into pep(no) values('abc');

insert into pep(no) values('caa');

insert into pep2(no) values('abc');

将pep2的数据插入pep中

insert into pep (no) select no from pep2;

分组去重创建新的临时表tmp

create table tmp select id,no from pep group by no;

注意:创建完这个表的id字段类型已经不是主键自增

可能也会报错

```Syntax error or access violation: 1055 Expression #1 of SELECT

list is not in GROUP BY clause and contains nonaggregated

column 'XXX.Y.ZZZZ' which is not functionally dependent on

columns in GROUP BY clause; this is incompatible with

sql_mode=only_full_group_by

```

解决:执行以下两个命令:

```

mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

```

删除pep表,并将tmp表重命名为pep

drop table pep;

alter table tmp rename to pep;

查看desc结构和select * from pep发现id的字段类型变了,这里需要改回原来的类型;

alter table pep add primary key (id);

alter table pep modify id int auto_increment;

还有可以使用join来做去重,更快的还可以添加一个字段(可以是几个字段+起来的的md5值),给这个字段创建一个唯一索引unique,以后插入数据的时候,自动回过滤掉重复的数据。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

时间: 2019-05-28

mysql合并表快速去重_MySQL数据表合并去重的简单实现方法相关推荐

  1. mysql 修复表 阿里云_MySql数据表修复方法-阿里云开发者社区

    mysqld进程在一个写入当中被杀死.计算机的意外关闭(例如,如果计算机掉电).一个硬件错误这章描述如何检查和处理在MySQL数据库中的数据损坏.如果你的表损坏很多,你应该尝试找出其原因!见G.1 调 ...

  2. mysql 为数据表添加字段_MySQL数据表添加字段实例

    MySQL 允许在开头.中间和结尾处添加字段.针对不同的位置,MySQL数据表添加字段的方式也有所不同,下面我们一起来看MySQL数据表添加字段的实例,方便我们理解MySQL数据表添加字段的方式. M ...

  3. mysql range代表什么意思_MySQL数据表range分区例子

    某些行业数据量的增长速度极快,随着数据库中数据量的急速膨胀,数据库的插入和查询效率越来越低.此时,除了程序代码和查询语句外,还得在数据库的结构上做点更改:在一个主读辅写的数据库中,当数据表数据超过10 ...

  4. mysql 目录武沛齐_MySQL数据表中的数据操作

    1.插入数据 insert into t_user (username,password,nickname) values ('foye','123','佛爷'); 以下方式必须写出所有的字段 ins ...

  5. mysql 复制数据_MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库.使用以下方法,可以非常简单地实现. 假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb.步骤如 ...

  6. mysql数据表操作_MySQL数据表基本操作实例详解

    本文实例讲述了MySQL数据表基本操作.分享给大家供大家参考,具体如下: 数据表的基本操作 1.主键约束要求主键列的数据唯一,并且不允许为空.主键能够唯一地识别表中的一条记录,可以结合外键来定义不同数 ...

  7. mysql设计功能设置表_MySQL数据表的设计

    数据表(Table) 数据表是数据库的基本组成元素,以记录(行)和字段(列)组成的二位结构用于储存数据.数据库由表结构和表内容组成,先建立表结构,然后才能输入数据.数据表结构设计主要包括字段名称,字段 ...

  8. mysql为什么行数据库_关系数据表中的行称为什么?

    在一个二维表中,水平方向的行称为元组,每一行是一个元组:元组对应表中的一个具体记录. 数据元组也称为记录.一个数据表中的每一个记录均有一个惟一的编号(记录号).一个记录也就是数据表中的一行. 元组(t ...

  9. mysql多表删除操作_MySQL多表删除的实现

    MySQL多表删除应该如何实现呢?这是不少人都提到过的问题.下面就为您介绍MySQL多表删除的实现方法,供您参考学习. 1.从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉 DELETE ...

最新文章

  1. 清华成立视觉智能研究中心,邓志东任中心主任
  2. python中字符串前面加一个u或者r的区别
  3. matlab while循环
  4. c语言键盘输入若干个数据,//从键盘上输入若干整数,并将其存入数组中,并统计输入数据的个...
  5. 当人工智能遇见农业,农民伯伯不再「粒粒皆辛苦」
  6. Running /usr/bin/wineserver -w. This will hang until all wine processes XXXX terminate
  7. Activity、Task、应用和进程
  8. UI Component in CRM WebUI and Hybris
  9. Mobx 与 Redux 的性能对比
  10. 类似collect2: ld returned 1 exit status的错误
  11. linux根据进程的运行路径,停止进程
  12. 三招帮你解决物联网卡上不了网问题
  13. https原理:证书传递、验证和数据加密、解密过程解析
  14. 文件上传漏洞及其绕过
  15. unity找到特定一个物体的子物体,多个子物体有相同的名称
  16. mysql数据库MyISAM存储引擎_MySQL数据库MyISAM存储引擎
  17. 在WPF中调用Winform控件
  18. Python贴吧小爬虫
  19. linux系统的wps办公软件,Linux学习-7:Linux环境下安装WPS办公软件
  20. 谷粒商城九商品服务之商品属性及仓储服务todo

热门文章

  1. Socket、Tcp、Udp 概念区分
  2. git clone报错:fatal: could not create work tree dir ‘code_update‘
  3. protect 继承_C++ protected继承和private继承是不是没用的废物?
  4. sap权限激活_宅出职场含金量!SAP 解决方案培训课程线上免费学
  5. 在python中requests模块怎么安装_Python requests模块在Windows下安装
  6. Bootloader详解
  7. 本地生活JAVA版本_赶集生活java版
  8. python延时函数_Python实现屏幕自动截图
  9. vnc远程无法关闭窗口_无法启动远程桌面服务(VNC)[关闭]
  10. 记-php连接mssql遇上的问题