场景:
爬取的数据生成数据表,结构与另一个主表相同,需要进行合并+去重
解决:(直接举例)
首先创建两个表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,以后插入数据的时候,自动回过滤掉重复的数据。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。
本文向大家介绍JS简单实现数组去重的方法示例,包括了JS简单实现数组去重的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS简单实现数组去重的方法。分享给大家供大家参考,具体如下: 运行效果图如下: 出现的问题,新数组中值和index值对应。有局限性。虽然可以从小到大排列。 PS:这里再为大家提供几款去重复工具供大家参考使用: 在线去除重复项工具: http://tools.jb
本文向大家介绍JS简单实现数组去重的方法分析,包括了JS简单实现数组去重的方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS简单实现数组去重的方法。分享给大家供大家参考,具体如下: 运行结果: 关于indexOf()方法: indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 stringObject.indexOf(searchvalue,frominde
本文向大家介绍MySQL 数据查重、去重的实现语句,包括了MySQL 数据查重、去重的实现语句的使用技巧和注意事项,需要的朋友参考一下 有一个表user,字段分别有id、nick_name、password、email、phone。 一、单字段(nick_name) 查出所有有重复记录的所有记录 查出有重复记录的各个记录组中id最大的记录 查出多余的记录,不查出id最小的记录 删除多余的重复记录,
本文向大家介绍C#实现简单合并word文档的方法,包括了C#实现简单合并word文档的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现简单合并word文档的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍php连接mysql数据库最简单的实现方法,包括了php连接mysql数据库最简单的实现方法的使用技巧和注意事项,需要的朋友参考一下 在连接MySQL数据库之前,您必须指定以下信息: MySQL数据源名称或DSN:指定MySQL数据库服务器的地址。您可以使用IP地址或服务器名称,例如,127.0.0.1 或 localhost MySQL数据库名称:表示要连接的数据库的名称。 用户名
本文向大家介绍PHP简单实现合并2个数字键数组值的方法,包括了PHP简单实现合并2个数字键数组值的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP简单实现合并2个数字键数组值的方法。分享给大家供大家参考,具体如下: 先要了解一个基础知识点:PHP合并数组+与array_merge的区别分析 输出: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技