mysql合并表快速去重_MySQL数据表合并去重的简单实现方法
场景:
爬取的数据生成数据表,结构与另一个主表相同,需要进行合并+去重
解决:(直接举例)
首先创建两个表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数据表合并去重的简单实现方法相关推荐
- mysql 修复表 阿里云_MySql数据表修复方法-阿里云开发者社区
mysqld进程在一个写入当中被杀死.计算机的意外关闭(例如,如果计算机掉电).一个硬件错误这章描述如何检查和处理在MySQL数据库中的数据损坏.如果你的表损坏很多,你应该尝试找出其原因!见G.1 调 ...
- mysql 为数据表添加字段_MySQL数据表添加字段实例
MySQL 允许在开头.中间和结尾处添加字段.针对不同的位置,MySQL数据表添加字段的方式也有所不同,下面我们一起来看MySQL数据表添加字段的实例,方便我们理解MySQL数据表添加字段的方式. M ...
- mysql range代表什么意思_MySQL数据表range分区例子
某些行业数据量的增长速度极快,随着数据库中数据量的急速膨胀,数据库的插入和查询效率越来越低.此时,除了程序代码和查询语句外,还得在数据库的结构上做点更改:在一个主读辅写的数据库中,当数据表数据超过10 ...
- mysql 目录武沛齐_MySQL数据表中的数据操作
1.插入数据 insert into t_user (username,password,nickname) values ('foye','123','佛爷'); 以下方式必须写出所有的字段 ins ...
- mysql 复制数据_MySQL快速复制数据库数据表的方法
某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库.使用以下方法,可以非常简单地实现. 假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb.步骤如 ...
- mysql数据表操作_MySQL数据表基本操作实例详解
本文实例讲述了MySQL数据表基本操作.分享给大家供大家参考,具体如下: 数据表的基本操作 1.主键约束要求主键列的数据唯一,并且不允许为空.主键能够唯一地识别表中的一条记录,可以结合外键来定义不同数 ...
- mysql设计功能设置表_MySQL数据表的设计
数据表(Table) 数据表是数据库的基本组成元素,以记录(行)和字段(列)组成的二位结构用于储存数据.数据库由表结构和表内容组成,先建立表结构,然后才能输入数据.数据表结构设计主要包括字段名称,字段 ...
- mysql为什么行数据库_关系数据表中的行称为什么?
在一个二维表中,水平方向的行称为元组,每一行是一个元组:元组对应表中的一个具体记录. 数据元组也称为记录.一个数据表中的每一个记录均有一个惟一的编号(记录号).一个记录也就是数据表中的一行. 元组(t ...
- mysql多表删除操作_MySQL多表删除的实现
MySQL多表删除应该如何实现呢?这是不少人都提到过的问题.下面就为您介绍MySQL多表删除的实现方法,供您参考学习. 1.从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉 DELETE ...
最新文章
- 清华成立视觉智能研究中心,邓志东任中心主任
- python中字符串前面加一个u或者r的区别
- matlab while循环
- c语言键盘输入若干个数据,//从键盘上输入若干整数,并将其存入数组中,并统计输入数据的个...
- 当人工智能遇见农业,农民伯伯不再「粒粒皆辛苦」
- Running /usr/bin/wineserver -w. This will hang until all wine processes XXXX terminate
- Activity、Task、应用和进程
- UI Component in CRM WebUI and Hybris
- Mobx 与 Redux 的性能对比
- 类似collect2: ld returned 1 exit status的错误
- linux根据进程的运行路径,停止进程
- 三招帮你解决物联网卡上不了网问题
- https原理:证书传递、验证和数据加密、解密过程解析
- 文件上传漏洞及其绕过
- unity找到特定一个物体的子物体,多个子物体有相同的名称
- mysql数据库MyISAM存储引擎_MySQL数据库MyISAM存储引擎
- 在WPF中调用Winform控件
- Python贴吧小爬虫
- linux系统的wps办公软件,Linux学习-7:Linux环境下安装WPS办公软件
- 谷粒商城九商品服务之商品属性及仓储服务todo
热门文章
- Socket、Tcp、Udp 概念区分
- git clone报错:fatal: could not create work tree dir ‘code_update‘
- protect 继承_C++ protected继承和private继承是不是没用的废物?
- sap权限激活_宅出职场含金量!SAP 解决方案培训课程线上免费学
- 在python中requests模块怎么安装_Python requests模块在Windows下安装
- Bootloader详解
- 本地生活JAVA版本_赶集生活java版
- python延时函数_Python实现屏幕自动截图
- vnc远程无法关闭窗口_无法启动远程桌面服务(VNC)[关闭]
- 记-php连接mssql遇上的问题