千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > mysql如果一张表里面两个字段的值相同,则添加到第二张表里,怎么做?

mysql如果一张表里面两个字段的值相同,则添加到第二张表里,怎么做?

来源:千锋教育
发布人:xqq
时间: 2023-10-13 14:15:03 1697177703

一、mysql如果一张表里面两个字段的值相同,则添加到第二张表

本问题的意思是说,如果表A的字段1等于字段2,则插入表B。INSERT INTO 第二张表(One, Two) SELECT One, Two FROM 名列前茅张表;如果一模一样,可以直接INSERT INTO 第二张表 SELECT * FROM 名列前茅张表。

MySQL根据某一个或者多个字段查找重复数据的sql语句

1.表中有id和name 两个字段,查询出name重复的所有数据

1select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1)

2、查询出所有数据进行分组之后,和重复数据的重复次数的查询数据,先列下:

1select count(username) as ‘重复次数’,username from xi group by username having count(*)>1 order by username desc

3、一下为 查看别人的 结果,现列下:查询及删除重复记录的方法大全

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

1 2select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

1 2 3delete from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)

3、查找表中多余的重复记录(多个字段)

1 2select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

1 2 3delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录

1 2 3select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

(二)

比方说

在A表中存在一个字段“name”,

而且不同记录之间的“name”值有可能会相同,

现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;

1Select Name,Count(*) From A Group By Name Having Count(*) > 1

如果还查性别也相同大则如下:

1Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1

(三)

1 2 3 4 5 6 7 8 9 10 11declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; open cur_rows fetch cur_rows into @id,@maxwhile @@fetch_status=0 begin  select @max = @max -1  set rowcount @max  delete from 表名 where 主字段 = @id fetch cur_rows into @id,@maxend close cur_rows set rowcount 0

延伸阅读:

二、SQL是什么

Structured Query Language

‘SQL’是结构化查询语言,是一种用来操作 RDBMS 的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库

SQL语句主要分为:
DQL:数据查询语言,用于对数据进行查询,如select**
DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete**
TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
DCL:数据控制语言,进行授权与权限回收,如grant、revoke
DDL:数据定义语言,进行数据库、表的管理等,如create、drop
CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor对于web程序员来讲,重点是数据的crud(增删改查),必须熟练编写DQL、DML,能够编写DDL完成数据库、表的操作,其它语言如TPL、DCL、CCL了解即可SQL 是一门特殊的语言,专门用来操作关系数据库不区分大小写
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT