Mysql入门MySQL去重的方法整理

Mysql入门MySQL去重的方法整理,第1张

概述介绍《Mysql入门MySQL去重的方法整理》开发教程,希望对您有用。

《MysqL入门MysqL去重的方法整理》要点:
本文介绍了MysqL入门MysqL去重的方法整理,希望对您有用。如果有疑问,可以联系我们。

MysqL去重的方法整理MysqL实例

【初级】有极少的重复行MysqL实例

使用distinct查出来,然后手动一行一行删除.MysqL实例

【中级】按照单个字段的重复去重MysqL实例

例如:对ID字段去重MysqL实例

使用方法:获取ID的重复字段的值,利用相同ID字段所在的行中,比较出数据不同的字段,删除 除了最小(或最大)的字段所在的该行之外的所有重复的行.一般使用主键来比较,因为主键的值一定是唯一值,绝对不相同.MysqL实例

ID  name1    a1    b2    c2    a3    c

结果:MysqL实例

ID  name1    a 2    a

*** 作:MysqL实例

delete from a_tmp where ID in (select * from (select b.ID from a_tmp b group by b.ID having count(b.ID) >1) bb) and name not in (select * from (select min(a.name) from a_tmp a GROUP BY a.ID having count(a.ID) >1) aa);

注意:MysqL实例

上述加粗并绿色的字,必须加别名,必须使用select * from (……)这样的格式,否则会报错:MysqL实例

[Err] 1093 - You can't specify target table 'a_tmp' for update in FROM clauseMysqL实例

【高级】按多个字段的重复来去重MysqL实例

例如:对ID,name相同的去重,即:对ID,name都相同的算作重复行,对ID相同而name不同的算作不重复行MysqL实例

使用方法:和单个字段相似,一般使用主键来比较,因为主键的值一定是唯一值.MysqL实例

ID  name  rowID1  a      11  a      21  b      32  b      42  b      53  c      63  d     7

结果:MysqL实例

ID  name  rowID1  a      1 1  b      32  b      43  c      63  d     7

*** 作:MysqL实例

第一种:MysqL实例

delete from a_tmp where (ID,name) in (select * from (select b.ID,b.name from a_tmp b group by b.ID,b.name having count(b.ID) >1) bb) and rowID not in (select * from (select min(a.rowID) from a_tmp a group by a.ID,a.name having count(a.ID) >1) aa);

第二种:MysqL实例

将ID和name字段的值连接起来插入到临时表中b_tmp,这样便可以使用【中级】的单字段的判断删除方法.MysqL实例

#将两字段连接的值,a_tmp表中唯一值的字段插入b_tmp表MysqL实例

insert into b_tmp  select concat(ID,name),rowID from a_tmp;#查出需要留下来的行select ID_name,max(rowID) from b_tmp  group by ID_name having count(ID_name)>1;#使用【中级】的方法,或存储过程完成去重的工作

 【终极】每行都有两份一样的数据MysqL实例

例如:MysqL实例

使用方法:对于整行的数据都一样,是没办法使用SQL语句删除的,因为没有可以使用的条件限制来留下一行删除所有与其相同的行.没有不同的字段可以自己创造不同的字段,即:添加一个字段,设为自增长,并设为主键,它会自动添加上值.MysqL实例

ID  name1   a1   a1   b1   b2   c2   c3   c3   c

结果:MysqL实例

ID  name   rowID1   a       11   b       32   c       53   c       7

*** 作:MysqL实例

添加一个自增长的字段,并暂时设为主键.MysqL实例

使用上面【中级】和【高级】的方法 *** 作.MysqL实例

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!MysqL实例

总结

以上是内存溢出为你收集整理的Mysql入门MySQL去重的方法整理全部内容,希望文章能够帮你解决Mysql入门MySQL去重的方法整理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1162283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存