You can't specify target table 'p' for update in FROM clause
时间: 2024-03-08 19:41:00 浏览: 185
mysql中You can’t specify target table for update in FROM clause错误解决方法
You can't specify target table 'p' for update in FROM clause 是一个MySQL错误,它的含义是在更新语句中不能将同一表作为查询表和更新表。为了解决这个错误,你可以使用临时表或子查询来避免在FROM子句中使用同一表。具体的解决方法如下:
1. 使用临时表:
创建一个临时表,将需要更新的数据查询到临时表中,然后再使用临时表进行更新操作。
2. 使用子查询:
将需要更新的数据查询到子查询中,然后在外层查询中使用子查询进行更新操作。
以下是示例代码:
1. 使用临时表:
CREATE TEMPORARY TABLE temp_table
SELECT * FROM your_table WHERE condition;
UPDATE your_table AS t
INNER JOIN temp_table AS temp
ON t.id = temp.id
SET t.column = temp.column;
2. 使用子查询:
UPDATE your_table AS t
SET t.column = (
SELECT temp.column FROM your_table AS temp
WHERE temp.id = t.id AND condition
);
阅读全文