爲了修復節點表某批次數據的用戶數據,作出瞭如下嘗試:
UPDATE zs_work_approval_node SET uid = 4963, name = '蘇暢' WHERE id IN (SELECT id FROM zs_work_approval_node WHERE uid = 4967 AND STATUS IN (0, 1, 4));
執行:[Err] 1093 - You can't specify target table 'zs_work_approval_node' for update in FROM clause
百度查詢提示得知:
update語句中包含的子查詢的表和update的表爲同一張表時,報錯:1093-You can’t specify target table for update in FROM clausenode
mysql不容許update目標表和子查詢裏面的表爲同一張表mysql
解決辦法: 利用子查詢sql能夠改變雙層的子查詢,便可執行成功 (但性能較差,僅僅適合較小的數據量的)sql
UPDATE zs_work_approval_node SET uid = 4963, name = '蘇暢' WHERE id IN (SELECT * FROM ( SELECT m.id FROM zs_work_approval_node m WHERE uid = 4967 AND STATUS IN (0, 1, 4)) AS temp);