navicat 表合并查询_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,以后插入数据的时候,自动回过滤掉重复的数据。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。
本文标题: MySQL数据表合并去重的简单实现方法
本文地址: http://www.cppcns.com/shujuku/mysql/260912.html
navicat 表合并查询_MySQL数据表合并去重的简单实现方法相关推荐
- mysql多表成绩查询_MySQL多表数据记录查询(一)
1.交叉连接SQL语句的语法结构如下: select * from表1 cross join 表2; 或 Select * from表1,表2; 2.内连接SQL语句有两种表示形式: 使用inner ...
- mysql多表成绩查询_MySQL多表查询答案
一.综合练习 1.1 init.sql文件内容 /* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Serv ...
- mysql 修复表 阿里云_MySql数据表修复方法-阿里云开发者社区
mysqld进程在一个写入当中被杀死.计算机的意外关闭(例如,如果计算机掉电).一个硬件错误这章描述如何检查和处理在MySQL数据库中的数据损坏.如果你的表损坏很多,你应该尝试找出其原因!见G.1 调 ...
- mysql 单表多级查询_mysql单表与多表查询
单表查询 """ 增: insert [into] [数据库名.]表名[(字段1[, ..., 字段n])] values (数据1[, ..., 数据n])[, ... ...
- mysql 多表并列查询_Mysql多表查询(两张独立表,一张关系表)
标签: 一.数据库设计 1.三个数据表长这样 其中user表记录用户信息,cat主要记录男女性别,mete表是用户id和性别id的对应关系 2.具体数据如下 二.查询目标 查询出所有性别为" ...
- mysql 分表 条件查询_mysql分表+查询
最近面试,问到关与mysql数据库的分表一些问题,如设计一个千万级别的会员数据库,当时想到了分表,但是当问到如何跟据username查询到用户的信息时,这时,有点卡住了,所以为了让自已重新认识分表,而 ...
- mysql 为数据表添加字段_MySQL数据表添加字段实例
MySQL 允许在开头.中间和结尾处添加字段.针对不同的位置,MySQL数据表添加字段的方式也有所不同,下面我们一起来看MySQL数据表添加字段的实例,方便我们理解MySQL数据表添加字段的方式. M ...
- mysql 分表后查询_Mysql分表后怎么查询效率高?
胸弟,mysql分表要慎之又慎,没有必要的情况下千万不要贸然分库分表.真到了非拆不可的时候,一定要结合实际业务,多花点时间做方案预研.像你们这个方案,按日期一天一张表,这完全是拍脑袋想出来的啊,给自己 ...
- mysql 两表管理查询_mysql两表查询
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
最新文章
- 【FluidSynth】FluidSynth 简介 ( 相关资源链接 | 简介 | 特征 )
- Sed教程(一):简介、环境设置、工作流程
- C语言volatile关键字—最易变的关键字
- 微信自定义菜单中文乱码问题
- spring的@primary和@qualifier注解解决一个接口多个实现的注入问题
- SQL的笛卡尔积简记
- 遍历获取文件夹下的所有文件
- 三角形求高公式计算机,三角形已知边长求高公式有哪些
- Oracle EBS 值集获取段限定词SQL
- vue的网站用puppeteer做seo
- Android简单的布局优化
- 小程序前端view内容重叠问题
- 1Flask使用2路由3模板
- php fpm failed,ubuntu环境下启动php-fpm失败Job for php-fpm.service failed...
- [Linux]进程概念以及进程状态
- C++-FFmpeg-(5)-2-h264-概念与名词:宏块-I-P-B帧;参数设置:ABR、CQP、CBR、CRF;码流:SPS-PPS
- 有效的预防电脑辐射的方法
- AD数模转化AD0809
- CLRS第十四章思考题
- 面试整理:关于代价函数,正则化