古いブラウザを使用しています。 より速く、より安全なブラウジング体験をお求めなら、今すぐ無料でアップグレードしてください。

Loading...

[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)