MySQL数据表合并(两表字段相同)以及数据去重(抄)

数据去重
现有两个表 test_01 test_02 其中test_01有重复数据

统计重复数据
select count(*) as repeat_count,name from test_01 group by name having repeat_count > 1;
1

使用DISTINCT关键字过滤重复数据
select distinct name,age from test_01;
1

也可以使用GROUP BY过滤重复数据
select name,age,gender from test_01 group by name;
1

删除重复的数据,采用create table select方式从以上过滤完数据的查询结果中创建新表,作为临时表,然后把原来的表drop删除,再把临时表重命名为原来的表名
create table test_temp select name,age,gender from test_01 group by name;
drop table test_01;
alter table test_temp rename to test_01;
1
2
3

这样便得到了无重复数据的 test_01

合并test_01 test_02(两表结构相同)采用暴力添加数据的方法,这里把test_02 表的数据合并到test_01表
insert into test_01(name,age,gender) select name,age,gender from test_02;
1

得到合并后的test_01

————————————————
版权声明:本文为CSDN博主「metoo9527」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/metoo9527/article/details/80085128

原文地址:https://www.cnblogs.com/xiangzideheiniu/p/11730228.html

时间: 2024-10-10 09:10:02

MySQL数据表合并(两表字段相同)以及数据去重(抄)的相关文章

MySQL修改数据表名和表字段命令行

有时候我们有需要更改数据表名和表字段,那么通过什么命令行更改数据表的名称,表的字段更改,增加 ,删除,下面详细说说操作数据表的方法 1,修改表的名称命令行 ALTER TABLE table_name rename to new_table_name 2,修改表的结构 增加字段 complete ALTER TABLE dc3688 ADD COLUMN complete DECIMAL(2,1) NULL AFTER description 3,修改表的结构 删除字段 ALTER TABLE

Sql中如何将数据表的两个字段的值如何互换?

今天遇到一个数据表的两个列数据要互换,在网上找到并记录下. 直接用Sql就可以搞定,语法如下 --将数据表中两个列数据互换的语法-- update tabName set field1=field2,field2=field1 我们来模拟验证一下,在数据库建立一个这样的表 第一步:创建数据表 --1.创建数据表-- create table Student( StuId int identity(1,1) primary key, StuCode varchar(50) not null, St

mysql互换表中两列数据

在开发过程中,有时由于业务等需要把一个表中的两列数据进行交换. 解决方案 使用update命令,这完全得益于MySQL SQL命令功能的强大支持. 表格中原来数据类似如下: select * from product; +----+--------+| id | name   | original_price | price  | +----+----+--------+|  1 | 雪糕   |           5.00 |   3.50 | |  2 | 鲜花   |          

mysql中 如何合并两张表

mysqldump -d:只导出表结构,不含数据 导出完整的数据库的数据不含表结构 mysqldump -t :只导出数据,不含表结构 解决方法:mysqldump -t 在原来数据库中,只把表数据导出来 然后 导入到要合并的数据库里面就可以 注意 : 如果不加 -t 会把表结构跟表数据都导出来,这样,在合并表的时候,因为都存在表结构,他会把原有表结构以及数据删除,然后才把新数据导入,这样就没有了原来的数据 原文地址:http://blog.51cto.com/12916925/2087170

mysql建表设置两个默认CURRENT_TIMESTAMP的技巧

转载:http://blog.163.com/user_zhaopeng/blog/static/166022708201252323942430/ 业务场景: 例如用户表,我们需要建一个字段是创建时间, 一个字段是更新时间. 解决办法可以是指定插入时间,也可以使用数据库的默认时间. 在mysql中如果设置两个默认CURRENT_TIMESTAMP,会出现这样的错误. ERROR 1293 (HY000): Incorrect table definition; there can be onl

(转)MySQL建表设置两个默认CURRENT_TIMESTAMP的技巧

业务场景: 例如用户表,我们需要建一个字段是创建时间, 一个字段是更新时间. 解决办法可以是指定插入时间,也可以使用数据库的默认时间. 在mysql中如果设置两个默认CURRENT_TIMESTAMP,会出现这样的错误. ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE claus

mysql多表合并为一张表

有人提出要将4张表合并成一张.数据量比较大,有4千万条数据.有很多重复数据,需要对某一列进行去重. 思路: 1.导出数据.select into outfile. 2.传输到要导入数据的服务器上. 3.创建一张新表,主键和约束等与那三张表一样. 4.LOAD DATA INFILE导入.利用replace参数进行覆盖达到去重的目的. LOAD DATA INFILE '/backup/tbl_get.csv' replace INTO TABLE emob.tbl_new; LOAD DATA

mysql互换表中两列数据方法

1.创建表及记录用于测试 CREATE TABLE `product` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '产品id', `name` varchar(50) NOT NULL COMMENT '产品名称', `original_price` decimal(5,2) unsigned NOT NULL COMMENT '原价', `price` decimal(5,2) unsigned NOT NULL COMME

ORACLE 两个表或两个结果集的数据对比常用的函数

假设有两个表A,B,都只有一个字段PHONE 1,MINUS SELECT PHONE FROM A MINUS SELECT PHONE FROM B;     相当于用结果集A减去结果B得出的结果集.同样的效果也可以用SELECT PHONE FROM A WHERE NOT EXISTS(SELECT 1 FROM B WHERE A.PHOEN=B.PHONE)来达到. 2,INTERSECT SELECT PHONE FROM A INTERSECT SELECT PHONE FROM