WordPressでカスタム投稿の投稿をまとめて削除しようと思って、postsテーブル のデータ削除は簡単なんだけれど、
postmetaテーブルのデータ削除がああでもない、こーでもないと格闘。
初めは、こうしたけれどダメ。
1 2 3 |
DELETE FROM tn_postmeta pm LEFT JOIN tn_posts p ON p.ID=pm.post_id WHERE p.post_type='postType'; |
どうやら、DELETE と FROM の間にテーブル名を入れないといけないらしい、ということで…
こうしたけれど、これもだめ。
1 2 3 |
DELETE tn_postmeta FROM tn_postmeta pm LEFT JOIN tn_posts p ON p.ID=pm.post_id WHERE p.post_type='postType'; |
どうやら、DELETE と FROM の間のテーブル名には、エイリアス名を入れないといけないということで、
エイリアス名に変えて、これでOKでした。
1 2 3 |
DELETE pm FROM tn_postmeta pm LEFT JOIN tn_posts p ON p.ID=pm.post_id WHERE p.post_type='postType'; |
ちなみに、エイリアス名のAS句は省略できるということなので、
1 2 3 |
DELETE pm FROM tn_postmeta AS pm LEFT JOIN tn_posts AS p ON p.ID=pm.post_id WHERE p.post_type='postType'; |
と同じ意味。のはず。