今天在修改数据库字段的时候,执行UPDATE XXX SET is_delete=1 WHERE id IN (SELECT id FROM XXX WHERE name=’Andy’)这个SQL,直接报错,错误为:You can’t specify target table ‘XXX’ for update in FROM clause。
百度了一下,说是一个update语句,不能在where条件里边嵌套自身表的查询语句。
根据提供的解决方案,尝试着修改了一下SQL:UPDATE XXX AS a,(SELECT id FROM XXX WHERE name=’Andy’) AS b SET a.is_delete=1 WHERE a.id=b.id,修改后执行,成功修改