1

サーバーからデータベースをダンプし、.sql を別のサーバーに転送してから、次のスクリプトを実行して、この構文を使用して特定の行を削除する必要があります。

DELETE wp_posts
FROM wp_posts
INNER JOIN wp_postmeta ON wp_postmeta.post_id = wp_posts.ID
WHERE (wp_postmeta.meta_key = 'InternalOnly' AND wp_postmeta.meta_value IS NOT NULL);

投稿をダンプする前にフィルタリングする方法はありますか? 元のサーバーでそれらを削除したくありません。

4

1 に答える 1

0

ダンプする MySQL データベースで、次のクエリを実行します。

CREATE TABLE wp_posts_copy LIKE wp_posts;
INSERT INTO wp_posts_copy
SELECT wp_posts.*
FROM wp_posts
INNER JOIN wp_postmeta ON wp_postmeta.post_id = wp_posts.ID
WHERE NOT(wp_postmeta.meta_key = 'InternalOnly' AND wp_postmeta.meta_value IS NOT NULL);

wp_posts_copyと同じ構造のテーブルを作成し、wp_posts保持したい行をこの新しいテーブルに挿入します。

を使用mysqldumpしてデータをエクスポートする場合は、元のテーブルをダンプから除外しwp_postsます。

mysqldump -u username -p database --ignore-table=your_database.wp_posts > backup.sql

バックアップを新しいサーバーにインポートしたら、テーブルの名前を変更することを忘れないでください。

ALTER TABLE wp_posts_copy RENAME TO wp_posts;
于 2012-08-25T13:29:40.583 に答える