sql删除重复记录语句备忘

我们开发调试时程序偶尔会不小心插入了重复记录,对于某字段pid必须全表唯一,当然有对应的记录id(recid)是唯一的:

recidpidname
11223a
21223a
32123b
42123b
53876c
63876c
73922d
而需求是这样子:

recidpidname
11223a
22123b
33876c
43922d
我们要把重复的记录:recid=2、4、6删掉,可以通过max()函数把按pid分组好的表提取出来:

delete from tb where recid in (
select MAX(recid) from tb where pid in (
select pid from tb group by pid having(COUNT(pid)>1)) group by pid)

这样实现把重复的记录删除!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值