mysql 删除某字段重复的数据库_sql语句删除mysql数据库单表中指定字段下的重复数据...

一、问题描述

数据表如下图

2664fdf9881f0f6160a217d2b43f94ed.png

93dec42948b7fc71c5cbfd0e32a8cbb5.png

上述是ecshop中的商品表(ecs_goods),远程采集数据时,由于采集代码写的不够严谨,导致sku_id,goods_sn,goods_name三个字段中的数据出现了大量重复。

二、数据处理过程中出现的错误delete from ecs_goods WHERE sku_id IN (SELECT sku_id FROM ecs_goods GROUP BY sku_id HAVING COUNT(*)>1) AND goods_id NOT IN (SELECT MIN(goods_id) FROM ecs_goods GROUP BY sku_id HAVING COUNT(*)>1)

提示错误:

1 queries executed, 0 success, 1 errors, 0 warnings

查询:delete from ecs_goods WHERE sku_id IN (SELECT sku_id FROM ecs_goods GROUP BY sku_id HAVING COUNT(*)>1) AND goods_id NOT IN (SELE...

错误代码: 1093

Table 'ecs_goods' is specified twice, both as a target for 'DELETE' and as a separate source for data

执行耗时   : 0 sec

传送时间   : 0 sec

总耗时      : 0 sec

三、完美解决

正确语句:DELETE from ecs_goods WHERE sku_id in (SELECT sku_id from (SELECT sku_id FROM ecs_goods GROUP BY sku_id HAVING COUNT(*)>1) s1) AND goods_id NOT in (SELECT goods_id from (SELECT goods_id FROM ecs_goods GROUP BY sku_id HAVING COUNT(*)>1) s2);

.....

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值