Googleカスタム検索の支払い変更
一定期間以上がたったデータを消すとき
下記だと、
#1093 You can't specify target table tab_hoge for update in FROM clause
ってなエラーがでる。
DELETE FROM tab_hoge WHERE hoge_id =20 AND (
TO_DAYS( NOW( ) ) - TO_DAYS(
(SELECT max( t1.reg_date )
FROM tab_hoge
WHERE t1.hoge_id =20 )
) >30
)
サブクエリにおけるFromの部分を意味もなくサブクエリにする事で解決。
これはOracleやPostgreではエラーにならないらしい。。
DELETE FROM tab_hoge WHERE hoge_id =20 AND (
TO_DAYS( NOW( ) ) - TO_DAYS( (
SELECT max( t1.reg_date )
FROM (
SELECT *
FROM tab_hoge
) AS t1
WHERE t1.hoge_id =20 )
) >30
)