mysql添加用户查重的方法_mysql 开发技巧之JOIN 更新和数据查重/去重

主要涉及:join 、join 更新、group by having 数据查重/去重

1 inner join、left join、right join、full join(mysql 不支持)、cross join

这是在网上找到的非常好的一篇博文,图解 join 语句:

coding horror-a visual explanation of sql joins

下图可以很清楚的明白,join 的数据选取范围

[][1]

[1]: http://7xs09x.com1.z0.glb.clouddn.com/160725-imooc-mysql-development-skills-notes-001.png

2 更新使用过滤条件中包括本身的表

更新 t1 t2 表中 col_a 重复的字段

update t1

set col_a = 'hi'

where t1.col_a in (

select b.col_a

from t1 a inner join t2 b on

a.col_a = b.col_a

)

;

error:1093

可转换为:

update t1 aa join(

select b.col_a

from t1 a inner join t2 b on

a.col_a = b.col_a

)bb on aa.col_a= bb.col_a

set col_a = 'hi'

;

3 查询重复数据、删除重复数据

利用 group by 和 having 查询重复数据

select col_a, count(*)

from t1

group by col_a having count(*) > 1

;

删除重复数据,对于相同数据保留 id 最大的

delete a

from t1 a join (

select col_a,count(*),max(id) as id

from t1

group by col_a having count(*) > 1

)b on a.col_a = b.col_a

where a.id < b.id

;

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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值