原因
报错其实就是不能将在同一表中查询的数据作为同一表的更新数据,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)