原SQL:
update table_1
set field1 = '1'
WHERE file1 IN (
SELECT
field1
FROM table_1 k
WHERE k.field1 = '2'
)
运行后报标题错误
原因是:不能在FROM子句中指定要更新的目标表
解决办法,多套层查询,作为临时表,让Mysql认为你更新的和查询的不是同一张表就OK了
修改后SQL:
update table_1
set field1 = '1'
WHERE file1 IN (
select
tmp.field1
from (
SELECT
field1
FROM table_1 k
WHERE k.field1 = '2'
) tmp
)