mysql SQL语句You can't specify target table ' for update in FROM clause解决

来源:互联网 发布:什么行业需要网络推广 编辑:程序博客网 时间:2024/06/07 03:45

昨天执行了这样一个批量删除的语句

DELETEFROMbd_countryWHEREid IN (SELECTidFROMbd_countryWHEREstatecode IS NULLAND citycode IS NULLAND nameCN IS NULL)
然后出现了  [Err] 1093 - You can't specify target table 'bd_country' for update in FROM clause的错误,当时很纳闷 一直这样写的怎么会出现问题呢,它的意思是(你不能在FROM子句指定目标表更新),我想了想是不是以前我一直用的Oracle,Oracle可以但是Mysql不可以。

解决思路:既然Mysql不让对查询到的目标语句进行更新,那么我在它的上面在套一个子查询就可以。

DELETEFROMbd_countryWHEREid IN (SELECTtmp.idFROM(SELECTidFROMbd_countryWHEREstatecode IS NULLAND citycode IS NULLAND nameCN IS NULL) tmp)

0 0
原创粉丝点击