mysql如果一张表里面两个字段的值相同,则添加到第二张表里,怎么做
本问题的意思是说,如果表A的字段1等于字段2,则插入表B。INSERT INTO 第二张表(One, Two) SELECT One, Two FROM 名列前茅张表;如果一模一样,可以直接INSERT INTO 第二张表 SELECT * FROM 名列前茅张表。
本问题的意思是说,如果表A的字段1等于字段2,则插入表B。INSERT INTO 第二张表(One, Two) SELECT One, Two FROM 名列前茅张表;如果一模一样,可以直接INSERT INTO 第二张表 SELECT * FROM 名列前茅张表。
1.表中有id和name 两个字段,查询出name重复的所有数据
1 | select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) |
2、查询出所有数据进行分组之后,和重复数据的重复次数的查询数据,先列下:
1 | select count(username) as ‘重复次数’,username from xi group by username having count(*)>1 order by username desc |
3、一下为 查看别人的 结果,现列下:查询及删除重复记录的方法大全
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
1 2 | select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) |
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
1 2 3 | delete 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 2 | select * 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 3 | delete 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 3 | select * 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”值存在重复的项;
1 | Select Name,Count(*) From A Group By Name Having Count(*) > 1 |
如果还查性别也相同大则如下:
1 | Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1 |
(三)
1 2 3 4 5 6 7 8 9 10 11 | declare @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 |
延伸阅读:
Structured Query Language
‘SQL’是结构化查询语言,是一种用来操作 RDBMS 的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。
相关文章推荐
立即开启你的数字化管理
用心为每一位用户提供专业的数字化解决方案及业务咨询