错误SQL
update jy_declaration_share set city_name = null where id in (select id from jy_declaration_share where city_name like '%成都%');
错误信息
1093 - You can’t specify target table ‘jy_declaration_share’ for update in FROM clause
错误分析
不能在 FROM 子句中指定目标表 ‘jy_declaration_share’ 进行更新。
错误SQL在 oracle 数据库的语法是支持的,但是 mysql 就不支持直接这么写: from 和 update 都是同一张表。
解决办法
添加临时表:将in中的数据用临时表包住
update jy_declaration_share set city_name = null where id in (select id from (select id from jy_declaration_share where city_name like '%成都%') a);
我这个错误是在where子句中,下面是在set子句中,链接地址