MySQL之You can't specify target table for update in FROM clause错误解决
MySQL 根据子句进行条件更新或删除时,报如下错误:You can’t specify target table for update in FROM clause
错误意思是指:在同一语句中,update 和 select 子句不能是同一个表。
解决方式:需要把 SELECT 条件子句的结果集转为中间临时表,此临时表会依赖于 SELECT 条件子句驱动表。
此问题通常出现在 UPDATE 和 DELETE 需要根据条件 SELECT 子句来操作的场景。
UPDATE 示例:
1 | UPDATE user_info SET `status` = 0 WHERE id IN ( |
会报错:You can’t specify target table ‘user_info’ for update in FROM clause
解决示例:
1 | UPDATE user_info SET `status` = 0 WHERE id IN ( |
EXPLAIN 分析:
1 | mysql> EXPLAIN |
DELETE 操作报此错也是同样方式即可解决。
MySQL之You can't specify target table for update in FROM clause错误解决
http://blog.gxitsky.com/2022/07/08/MySQL-Error-cant-specify-table-in-from-clause/