Skip to content

MySQLのテーブルの中の文字列を一括置換する方法

CMSを使ってブログサイトを運営していると、MySQLに触れる機会が多くあります。ボクの場合、2005年にはじめて自分でブログサイトを作った時にはXoopsで。その後、MovableType。今はWordPressと、3つのCMSをブログのプラットフォームとして使ってきました。

ブログのCMSや見た目のデザインを変えるのはとても楽しい作業なんだけど、今まで書いてきた記事の移行は一苦労です。CMS間の記事の移行はツールが整っていたりしますが、ドメインが変わったりサーバを変えたり。。という場合は記事のパーマリンクや、記事内の画像リンクのURLを変えるのが大変だったりします。

データベースのMySQLからデータを落としてきて、Excellで置換して再アップロードをしていましたが、SQL文の実行をWebDB内で実行する怖さを克服すれば、文字列の一括置換はとても簡単に早くできます。

MySQLのテーブルの中の文字列を一括置換する方法

  1. phpMyAdminへログインする
  2. 画面上右カラムの上部にあるタブから「SQL」のメニューを開く
  3. テーブル、カラム、処理内容のSQL文を記載して処理を実行する
  4. 指定したテーブル内のカラムの文字列が置換される

SQL文は以下の通り

update テーブル名 set カラム名 = replace(カラム名,’置換前文字列’,'置換後文字列’);

WordPressの記事内にある表示画像を指定するURLを、旧ドメインから新ドメインに一括置換した私の場合は以下のようになりました。

update wp_posts set post_content = replace(post_content,’ryu.me.uk’,'ryu.jpn.com’);

参考になったら幸いです : )