场景:

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

解决:(直接举例)

首先创建两个表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数据表合并去重的简单实现方法相关推荐

  1. mysql多表成绩查询_MySQL多表数据记录查询(一)

    1.交叉连接SQL语句的语法结构如下: select * from表1 cross join 表2; 或 Select * from表1,表2; 2.内连接SQL语句有两种表示形式: 使用inner ...

  2. mysql多表成绩查询_MySQL多表查询答案

    一.综合练习 1.1 init.sql文件内容 /* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Serv ...

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

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

  4. mysql 单表多级查询_mysql单表与多表查询

    单表查询 """ 增: insert [into] [数据库名.]表名[(字段1[, ..., 字段n])] values (数据1[, ..., 数据n])[, ... ...

  5. mysql 多表并列查询_Mysql多表查询(两张独立表,一张关系表)

    标签: 一.数据库设计 1.三个数据表长这样 其中user表记录用户信息,cat主要记录男女性别,mete表是用户id和性别id的对应关系 2.具体数据如下 二.查询目标 查询出所有性别为" ...

  6. mysql 分表 条件查询_mysql分表+查询

    最近面试,问到关与mysql数据库的分表一些问题,如设计一个千万级别的会员数据库,当时想到了分表,但是当问到如何跟据username查询到用户的信息时,这时,有点卡住了,所以为了让自已重新认识分表,而 ...

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

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

  8. mysql 分表后查询_Mysql分表后怎么查询效率高?

    胸弟,mysql分表要慎之又慎,没有必要的情况下千万不要贸然分库分表.真到了非拆不可的时候,一定要结合实际业务,多花点时间做方案预研.像你们这个方案,按日期一天一张表,这完全是拍脑袋想出来的啊,给自己 ...

  9. mysql 两表管理查询_mysql两表查询

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

最新文章

  1. 【FluidSynth】FluidSynth 简介 ( 相关资源链接 | 简介 | 特征 )
  2. Sed教程(一):简介、环境设置、工作流程
  3. C语言volatile关键字—最易变的关键字
  4. 微信自定义菜单中文乱码问题
  5. spring的@primary和@qualifier注解解决一个接口多个实现的注入问题
  6. SQL的笛卡尔积简记
  7. 遍历获取文件夹下的所有文件
  8. 三角形求高公式计算机,三角形已知边长求高公式有哪些
  9. Oracle EBS 值集获取段限定词SQL
  10. vue的网站用puppeteer做seo
  11. Android简单的布局优化
  12. 小程序前端view内容重叠问题
  13. 1Flask使用2路由3模板
  14. php fpm failed,ubuntu环境下启动php-fpm失败Job for php-fpm.service failed...
  15. [Linux]进程概念以及进程状态
  16. C++-FFmpeg-(5)-2-h264-概念与名词:宏块-I-P-B帧;参数设置:ABR、CQP、CBR、CRF;码流:SPS-PPS
  17. 有效的预防电脑辐射的方法
  18. AD数模转化AD0809
  19. CLRS第十四章思考题
  20. 面试整理:关于代价函数,正则化

热门文章

  1. CAD复制到原坐标不显示问题解决方法
  2. 双网卡双网关冲突问题
  3. 分享一个电气仿真软件
  4. 图片转换成pdf格式如何转换?
  5. 【编程题】【Scratch一级】2021.09 小狗进圈
  6. 【AMT 20周年】董事长孔祥云致客户、股东、员工的一封信
  7. 在linux下使用ftp命令
  8. 大学计算机基础第五版第三章,大学计算机基础第三章习题答案
  9. Excel最常用的函数
  10. mysql 打开mdf文件怎么打开_mdf 数据库文件怎么打开