• ベストアンサー
  • 暇なときにでも

文字列の置換について

MySQLデータベース内の文字列を、別の文字列に書き換えたいんです。 例えば、文字列"http://www.xxx.com" を文字列"http://www.yyy.com"に書き換えます。 SQL文で操作して、一気にデータベースの各テーブルに入った大量の文字列を全部置換させたいんです、そのSQL文どういうふうに書きますか? ご存じの方がいっらしゃいましたら、どうぞお教え下さい。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数175
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2

更新対象のテーブルは何個ですか? 更新対象の行数は何件くらいですか? SQLでの大量の更新、追加、削除は、システムに大きな負荷を与えます。更新対象が1万件以内程度ならともかく、大量な件数なら、SQLでの操作は避けた方がいいと思います。 ここからは、更新件数が少なく、SQLで行うと仮定して回答します。 URLをVARCHAR等の列に、そのままの形式で格納していると仮定すると、以下のようなUPDATE文を使用します。 UPDATE 表名 SET 列名='http://www.yyy.com' WHERE 列名='http://www.xxx.com' 複数表を更新したいようですが、更新、追加、削除は、基本的には1SQLで1表に対してしか行えません。

共感・感謝の気持ちを伝えよう!

その他の回答 (2)

  • 回答No.3

こんな感じでしょうか? update TABLE_NAME set FILED1=replace(FIELD1,'http://www.xxx.com','http://www.yyy.com'); これで、全件リプレースします。 たとえば、 FIELD1 --------- http://www.xxx.com -> http://www.yyy.com http://www.xxx.com/index.html -> http://www.yyy.com/index.html

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • fire--
  • ベストアンサー率49% (146/293)

SQL文でやらないといけませんか? 一番簡単なのは、phpmyadminででもエクスポートして、 そのファイルを編集し、再びインポートで戻す事だと思います。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • ワードの置換で、文字列の前後に文字を追加

    ワードの置換について教えてください。 http://xxx/yyy/zzz という文字列があった場合、これを ABC-http://xxx/yyy/zzz-001 というように前後に文字列を追加したい場合はどうすれがいいのでしょうか? よろしくお願いします。

  • 特定の文字列を含むテキスト置換について

    HTML編集で困っているのでお教え下さい。 ある特定の文字列を含む内容の一部を置換したいのですが、 正規表現の使用できるエディタで作業は可能でしょうか。 例としましては <a href = "xxx/xxx/xxx.pdf> <a href = "yyy/yyy/yyy.html> のような表記で、「pdf」を含む文字列のみ <a onclick href = "xxx/xxx/xxx.pdf> と置換したいのですが。よろしくお願いいたします

  • ファイル内のある文字列以降を置換

    よろしくお願いします。 OS: Windows Server 2003, MS-DOSコマンドによるバッチで、あるテキストファイル内を検索し、 ある文字列を見つけたら別のある文字列に置換する、という ものを検討中です。 findstr と for文を使用して試行錯誤していますが、 なかなかうまい方法にたどり着きません。 以前ここで教えていただいた http://okwave.jp/qa2602345.html を応用してできないか? ということについても考えているのですが、 なかなか難しいです。 具体的に置換したい文字列というのは、 Dirコマンドの結果で出力されるドライブ文字を 例えば すべてD:\ から すべてE:\ へ変更するということです。 どうぞ、アドバイスのほど、宜しくお願い致します。

  • 文字列の置換

    文字列の置換 たとえば, if(abcd) という文字列があったときに,これを while(abcd){ に置換するにはどうすればいいでしょうか(同じような置換をしたいところが文章中にいくつもあるとします).つまり,文字列の一部をそのままにして置換するということです.いまの場合だと if( → while( はできたとしても, ) → ){ は,文章中に“)”がたくさんある場合は難しいですよね.wordなら,ワイルドカードを使って if(*) とすれば,検索はできるのですが,そのまま置換すると while(*){ となってしまい,*がそのまま残ってしまいます.どうにかできないでしょうか?

  • 文字列のアスタリスク置換

    PHP4でDBはMySQLを使用しています。 DBから取り出したいろいろな長さの文字列を*に置換したいのですがどのようにしたら良いでしょうか。 str_replaceを用いて置換をしようとしていますが文字列長が一定でないため難しいです。 宜しくお願い致します

    • ベストアンサー
    • PHP
  • 文字列の置換で・・・

    Javaでの文字列の置換についてなんですが ある文字を任意の文字に置換し表示させるとともに 何個の文字を置換したかも同時に知らせたい場合は どのような処理をしたらよいでしょうか? ぜひご協力よろしくお願いします!! (例)入力した文字列に"a"が含まれる場合は"b"に置換し   その際に変換した文字数も表示してください。     basic→出力結果: "bbsic" 置換した文字数は1です。

    • ベストアンサー
    • Java
  • 文字列の置換

    JAVAであるファイル内の文字列を置換するプログラム(日本語)を作りたいのですが、 ・ ・ String h_s; FileReader h_fr = new FileReader(in_filename); BufferedReader h_br = new BufferedReader(h_fr); while(true){  h_s = h_br.readLine();  if (h_s == null){   break;  }  ●文字列を置換するプログラム● } ・ ・ ここの●文字列を置換するプログラム●にあたる適当な関数って何かありますか? たとえばperlでいうと↓みたいなものなのですが・・・ s/置換前文字/置換後文字/g よろしくお願いします。

    • ベストアンサー
    • Java
  • アクセスDBファイルの複数テーブルの文字列を簡単に置換するには?

    アクセスのデータベースファイル内30テーブルほどの データがあります。 そのデータ内にあるひとつの文字(例えばABC)という 文字列があり,それを別の文字列(例:1000)に一括して 置き換えたいのですが,今のところ,一つ一つテーブルを 開いて置換コマンドを使って文字列を入力しています。 しかし、データベース内にあるABCと言う変数は計算に 使用するためその都度変更する必要があるため、とても面倒に感じています。 アクセスだけでこの作業はできるのでしょうか。 もし、できなければ外部プログラムでなにか良いものが あるでしょうか。ご教授ください。 よろしくお願いします。

  • {0>と<0}ではさまれた文字列の置換

    Word文書中で、記号{0>と<0}にはさまれた1文字以上の文字列を、これらの記号も含めて半角スーペスに一括置換する方法を教えてください。Wordのバージョンは、2003です。たとえば、 私の名{0>前は山<0}田太郎です。 上記の文なら、置換後は下記のようになって欲しいのです。 私の名 田太郎です。 なお、{0>と<0}の記号自体は置換できないが、はさまれた文字列をスペースに変換することならできる、という回答でも歓迎いたします。つまり、 下記のようになります。 私の名{0> <0}田太郎です。

  • SQL SERVER 2005 にて全テーブルの文字列を置換する方法を

    SQL SERVER 2005 にて全テーブルの文字列を置換する方法を探しています。 ものすごく基礎的なことでしたら申し訳ございません。 SQL SERVER 2005で作成したDBがあるのですが、この中の全てのテーブル内を検索し、 「AAA」という文字列を「BBB」に置換したいと考えています。 上記は例えですが、とにかく全てのテーブル内の全ての文字列を検索し、置換できる方法は無いでしょうか。 どうかご教示のほど、よろしくお願いいたします。