MySQL:You cant specify target table wmssina - 千亿集团

MySQL:You cant specify target table wmssina

2019-02-13 09:28:17 | 作者: 鹏涛 | 标签: 句子,运转,问题 | 浏览: 988

MySQl 遇到一个比较特别问题,SQL句子如下:

DELETE FROM table1 WHERE id in (select t1.id from table2 as t2,table1 as t1 where t2.id=t1.refer_id and t2.code like test%);

运转时提出如下提示: You cant specify target table table1 for update in FROM clause。

运转 in 里边的 select 字句:正常履行。

 

原因是:子查询select的字段 和 delete 表都是同一个表,MySQL不允许这样,不能先select出同一表中的某些值,再delete/update这个表(在同一句子中)。

 

解决方法:运用暂时表

DELETE FROM table1 WHERE id in (select t1.id from table2 as t2,(select * from table1)t1 where t2.id=t1.refer_id and t2.code like test%);

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表千亿集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章