1093 - You can‘t specify target table ‘table‘ for update in FROM c

裴硕
2023-12-01

原因

报错其实就是不能将在同一表中查询的数据作为同一表的更新数据,mysql会有这问题,oracle就没有。

原始语句:

UPDATE table 
SET a = CONCAT(a, "  ++" ) 
WHERE
	id IN (
	SELECT
		id 
	FROM
		table 
	WHERE
	 b = 'xx' )

再套一层select查询,修改后语句:

UPDATE table 
SET a = CONCAT(a, "  ++" ) 
WHERE
	id IN (select a.id as id from (
	SELECT
		id 
	FROM
		table 
	WHERE
	 b = 'xx' ) a)
 类似资料:

相关阅读

相关文章

相关问答