phpMyAdminで一括置換するときのSQL文

よく忘れるのでメモとして。

UPDATE テーブル SET フィールド名=REPLACE(フィールド名,"古い値","置換する値");

一番良く使うのはWordpressのドメイン置換かなー。
テスト環境から本番環境にドメイン切り替える時とか、サーバー引っ越す時とか。

テストから本番なら大概wp_optionsとかwp_posts、wp_postmetaの置換で済むけど、
サーバー引越しだとプラグインデータのテーブルもあるので、
とりあえず全テーブルから旧ドメイン検索しといて、
該当テーブルとフィールドの数だけ上のSQL文を走らせてやると楽ちん。
 #検索するとWassUpのログとかもごっそり出てくるけど、
  それは別に置換する必要ないから放置

一応Wordpressの場合の例文。
 #テーブルの接頭詞はインストール時のデフォルト
  私はいつも適当に変えてる

UPDATE wp_options SET option_value=REPLACE(option_value,"旧ドメイン","新ドメイン");
UPDATE wp_posts SET post_content=REPLACE(post_content,"旧ドメイン","新ドメイン");
UPDATE wp_posts SET guid=REPLACE(guid,"旧ドメイン","新ドメイン");
UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,"旧ドメイン","新ドメイン");
UPDATE wp_dsfaq_quest SET answer=REPLACE(answer,"旧ドメイン","新ドメイン");

1~4は必須のテーブルとフィールド。
5つ目はDS FAQ PLUSの回答でサイト内リンク貼ってる時用。
他にもプラグインの都合で色々あるはずだけど、とりあえずよく使いそうなものだけ書いてみた。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です