You can't specify target table 'XXX' for update in FROM clause
报错如题,意思大致是:在一条 sql 语句中不能先查出来部分内容,再同时又对当前表作修改。
解决方法:给查询加别名,用中间表来实现不是对同一表作操作。
如错误定法:
UPDATE appbricks_department
SET rank = '2'
WHERE parent_id in (SELECT id FROM appbricks_department WHERE parent_id IS NULL) ;
改后的写法:
UPDATE appbricks_department
SET rank = '2'
WHERE parent_id in
(SELECT * FROM (SELECT id FROM appbricks_department WHERE parent_id IS NULL) a );

浙公网安备 33010602011771号