• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 常见的数据表设计误区汇总
    • MySQL数据表分区策略及优缺点分析
    • MySQL高级特性——数据表分区的概念及机制详解
    • MySQL如何构建数据表索引
    • MySQL 索引和数据表该如何维护
    • Mysql删除数据以及数据表的方法实例
    • MySQL创建数据表时设定引擎MyISAM/InnoDB操作
    • 删除mysql数据表如何操作
    • 关于MYSQL 你需要知道的数据类型和操作数据表
    • MySQL创建数据表并建立主外键关系详解
    • MySQL 如何设计统计数据表
    上一篇:mysql 循环批量插入的实例代码详解
    下一篇:使用navicat将csv文件导入mysql
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    MySQL数据表合并去重的简单实现方法 MySQL,数据表,合并,去,重的,