サイトのドメインの変更やSSL化などの際にデータベースを使用したウェブサイトの場合、文字列を一括で置換したい場合があります。
一括置換するSQL文
UPDATE テーブル名 SET カラム名 = REPLASE( カラム名, '置換前文字列', '置換後文字列');
使用例
WordPressで投稿本文のURLを「http://www.redwoodcity.jp」から「https://www.redwoodcity .jp」に一括置換したい場合。
UPDATE wp_posts SET post_content = REPLASE( post_content, 'http://www.redwoodcity.jp', 'https://www.redwoodcity.jp');
上記の例では「wp_posts」テーブルに格納されている投稿本文のすべてを置換します。その中には「投稿」「固定ページ」「カスタム投稿タイプ」「メディア」を含みます。
特定の投稿を置換したい場合
UPDATE wp_posts SET post_content = REPLASE( post_content, 'http://www.redwoodcity.jp', 'https://www.redwoodcity.jp') WHERE post_id = 投稿ID;
「WHERE post_id = 投稿ID」を追記することで指定したIDのみ置換することが出来ます。
phpMyAdminから操作して置換する方法は?
残念ながらphpMyAdminで一括置換する操作は存在しません。
そのため、一括置換したい場合はSQL文を使用しましょう。
WordPressでサイト内の情報を置換したい場合は?
「Search Regex」というプラグインを使用しましょう。
ただし、このプラグインは「投稿」と「投稿者」の情報しか置換できません。
カスタム投稿タイプの置換は出来ません。
「投稿」記事の内容を簡易で置換できるメリットがありますが、カスタム投稿タイプなどを含む場合は、やはり上記のSQL文を使用しましょう。