update語句中包含的子查詢的表和update的表為同一張表時,報錯:1093-You can’t specify target table for update in FROM clause
mysql不允許update目標表和子查詢里面的表為同一張表
錯誤sql:
UPDATE mg_brand set `status`='0' where iID=(SELECT id from mg_industry where `name`='汽車') and id in (SELECT id from mg_brand WHERE nameC = '歐寶' or pID = (SELECT id from mg_brand WHERE nameC = '歐寶'));
解決辦法:子查詢sql可以改變雙層的子查詢,即可執行成功
示例sql:
UPDATE mg_brand SET `status` = '0' WHERE iID = ( SELECT id FROM mg_industry WHERE `name` = '汽車' ) AND id IN ( SELECT id FROM (SELECT id FROM mg_brand) AS temp WHERE nameC = '歐寶' OR pID = ( SELECT id FROM ( SELECT id FROM mg_brand WHERE nameC = '歐寶' ) AS te WHERE 1 ));