mysql查询某表中相同数据并删除,遇到错误: You can't specify target table 'app_user' for update in FROM clause

 首先我先查询出用户表中相同的数据,sql是:select phone from app_user where phone is not null Group By phone Having Count(*)>1

然后我要删除这些相同的数据,于是我这样写:

delete from app_user where phone in(
 select phone from app_user where phone is not null Group By phone Having Count(*)>1

)   mysql提示报错:You can't specify target table 'app_user' for update in FROM clause,我就蛋疼了,我这sql没错误啊,反复执行还是报错,于是有道翻译一下什么意思:您不能为FROM子句中的update指定目标表'app_user'????你妹的,看不懂。然后查了下资料,得到最终解决办法如下。

delete from app_user where phone in(
select aa.phone from( select phone from app_user where phone is not null Group By phone Having Count(*)>1)aa)

对,就是这样解决了,别问我为什么 ,我TM也很奇怪,就是给查询结果起个别名,然后再从这个结果集中查一遍,然后从这里删除。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值