mysql不能同时更新一张表,mysql无法在查询的同时对数据表进行更新

mysql真的很坑啊..

ca3cfafa06a02e7f1223fdbfcdf522b9.png

[Err] 1093 – You can’t specify target table ‘proxylist’ for update in FROM clause

网上查询了下 mysql不支持在更新表(update、delete)的时候对表进行查询。。。

只能通过临时表来操作,然后删掉临时表。。。

也有个稍微简单的办法,绕过:

35d7ad6932881cb48dda1c2d07cc81f9.png

delete from proxylist where proxy_info in

(

select proxy_info from

(

select proxy_info from proxylist

group by proxy_info having count(proxy_info)>1

) as temp

) ;

在mysql中删除重复项:

select * from proxylist where proxy_info in

(

select proxy_info from

(

select proxy_info from proxylist

group by proxy_info having count(proxy_info)>1

) as temp

)

and id not in (

select min(id) as id from proxylist

group by proxy_info having count(proxy_info)>1)

通过min(id)取重复数据的最小ID,达到删除重复项的目的….

删除的时候,又要通过as temp来绕过了。。。

delete from proxylist where proxy_info in

(

select proxy_info from

(

select proxy_info from proxylist

group by proxy_info having count(proxy_info)>1

) as temp1

)

and id not in (

select id from(

select min(id)  as id from proxylist

group by proxy_info having count(proxy_info)>1) as temp2

)

e7327e0265ade81a180b71169913323e.png

本文标题:mysql无法在查询的同时对数据表进行更新

本文链接:

(转载请附上本文链接)http://vulsee.com/archives/vulsee_2018/1226_7273.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值