mysql錯誤:1093-You can’t specify target table for update in FROM clause的解決方法


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 ));


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM