[mysql] You can't specify target table 'xxx' for update in FROM clause
[mysql] You can't specify target table 'xxx' for update in FROM clause
mysqlでは、update 時に、where 句の中に自テーブルのselect文を含めることができない。
そうすると表題のようなエラーが出る。
裏技として、下のように、select文をカッコで括って、as x などすると、一時テーブルが作成されて、通るようになる。まさに裏技。
update t_perf_image set viewno=viewno-1
where perfid=15 and viewno>
(select x.viewno from (select viewno from t_perf_image where id=3) as x)
and type=(select y.type from (select type from t_perf_image where id=3 as y)