• 締切済み

一括置換のSQL文

udatテーブルのimgurlという列は、それぞれ http://www.aaa.com/111/22.jpg http://www.aaa.com/111/54.jpg http://www.aaa.com/111/82.jpg http://www.aaa.com/182/85.jpg のようなデータで、その先頭部分の http://www.aaa.com/ はみんな同じです。 これを http://www.bb.com/111/22.jpg http://www.bb.com/111/54.jpg http://www.bb.com/111/82.jpg http://www.bb.com/182/85.jpg にするためのSQL文を教えてください。 update udat set imgurl = 'http://www.bb.com/' + substr(imgurl, 18); みたいなものを考えたので、正しいSQL文にするとどうなるのか教えてください。

みんなの回答

回答No.1

MySQL流に書くと.. update udat set imgurl = concat('http://www.bb.com/',substring(imgurl, 18)); な感じですが。 対象文字列が判っているのであれば、文字列置換で、 update udat set imgurl = replace(imgurl,'http://www.aaa.com/','http://www.bb.com/'); でも良いと思いますよ。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • update文で改行を入れる

    こんにちは。 いつもお世話になっています。 update文を使用して、データに改行を入れたいのですが、どうすればよいでしょうか。 対象列のデータ型はVARCHAR2です。 例えばSQLPLUSから、 SPL>update 「テーブル名」set 「対象列」='あ改行い改行う改行' を投入し、そのあと select 「対象列」 from 「テーブル名」 とすると SQL>あ SQL>い SQL>う と出てくればよいんですが、 SQL>update 「テーブル名」set 「対象列」='あ\nい\nう\n' としても SQL>あ\nい\nう\n と、「\n」が文字列としてでてきてしまいます。 SPL>update 「テーブル名」set 「対象列」='あ 2い 3う' と投入すると、期待通りになるのですが、 そうではなく一行にまとめたいのですがどうすれば良いでしょうか。 Oracle9iを使用しています。 宜しくお願いいたします。

  • SQL文は、そもそもどこに書けばいいのでしょうか?

    SQL文は、そもそもどこに書けばいいのでしょうか? DBを初めて扱う超初心者です。 いろいろネットで調べてみたのですが、 よく分からず。。 とある理由から、 すでにDBを利用して構築されたサイトの(ごく小さい規模のものです) SQL文を数行書き換えなければならなくなりました。 使用しているDBは、SQLiteというものらしいです。 htmlやcss、phpやjsなどはエディタに記述するように SQL文というものは、どこ(=何に)に書けばいいのでしょうか? コマンドプロンプト?? なお書きたいのは上書き文で kiji_tというテーブルの 識別子k_data4のなかに "vuitton"または"coach"という 文字が入っていた場合 識別子k_data6に1を入れる という作業です。 以下のように書いてみました。 --------------------------------------- UPDATE kiji_t SET k_data6='1' WHERE k_data4 LIKE '%vuitton%' or k_data4 LIKE '%coach%'; --------------------------------------- 質問をまとめます。 1.SQL文はどこに書けばいいのでしょうか?(コマンドプロンプト??) 2.作業中に、DBのテーブルを、エクセルの用に可視化することはできないのでしょうか? 初心者過ぎる質問で恐縮ですが。。 ご存知の方いらしゃいましたら なにとぞご教授よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • SQL(SELECT文)を教えてください

    SQL Serverを勉強中です。 以下のようなテーブルに、同一の日付に複数の名称・値のセットが存在します。 Date(日付)  Name(名称) Value(値) 20130101      a      10 20130101      b      20 20130101      c      30 20130202      a      5 20130202      b      10 20130202      c      15 このデータを、SQLのSELECT文で取得し、以下のような表を作りたいと考えています。 a b c 20130101 10 20 30 20130202 5 10 15 行が日付、列が名称になっています。 このように取得できるSQL文を教えてください。よろしくお願いします。

  • 文字列に対してPHP上で一括置き換えしたい

    DBにあるテーブルの指定されたカラム全てを文字列に対してPHP上で一括置き換えしたいです。 phpアドミン上でSQL文を使って UPDATE `テーブル名` SET フィールド名A=REPLACE (フィールド名A,"置換前の文字列","置換後の文字列"); で実行したらうまくいくのですが、 これをPHP上で処理したいと考えてます。 require("godb.php");//DBにアクセス $sql ="UPDATE テーブル名 SET フィールド名 = REPLACE(フィールド名,"AAA","BBB")"; mysql_query($sql2); と実行してもうまくいきません。。。 これって、、、一個一個対象カラムをPHP上で取り出してから 処理をかけないといけないのでしょうか。。 アドバイスいただけたら幸いです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 一つのSQLで実行する方法

    SQL初心者です。以下のような商品テーブルの備考欄の文字列をアップデートするSQLですが、ひとつのSQL文で実行させるにはどのように記述すれば良いかお教えいただけませんでしょうか? UPDATE 商品テーブル SET 備考フィールド = replace(備考フィールド,'%明太子味',''); UPDATE 商品テーブル SET 備考フィールド = replace(備考フィールド,'のり味',''); UPDATE 商品テーブル SET 備考フィールド = replace(備考フィールド,'みそ味','');

  • 【SQL】SELECT文

    こんにちは。OracleのSQLを勉強中の者です。 SELECT文について質問させてください。 下記のテーブルから購入フラグがすべて「1」のユーザ名を抽出したいのですが、SQL文をご教授いただけますでしょうか。 テーブル名:商品購入テーブル ユーザ名   商品名    購入フラグ ---------- ---------- -------------- 001      AAA       1 001      BBB       1 001      CCC       0 002      DDD       1 003      AAA       1 003      EEE       1 004      CCC       0 このテーブルからですと、002と003のユーザが抽出される形となります。 以上、よろしくお願いいたします。

  • SQL の Update文(?) と substring  について

    SQLで、filed1において、13桁目から6桁に AAA と入っているものを、 BBB と置き換えたいのですが、うまくいきません。 作った文 update  Table-1  set SUBSTRING(filed1,13, 6)= 'BBB' where SUBSTRING(filed1,13, 6) like '%AAA%' これだと Line 1: Incorrect syntax near '('. というエラーメッセージが出ます。 どの様にすれば うまくいきますか? よろしくお願いします。

  • 文字列を追加してUPDATEしたい

    MySQLサーバのバージョン: 5.1.41 を使ってます。 ・やりたいこと テーブル名:test id | photo | 1 /aaa/aa.jpg 2 /bbb/bb.jpg : : となっているテーブルに対して フィールド名「photo」に格納されている文字列の先頭に 「 http://www.test.com 」 を全てのレコードに対して追加したいと考えております。 希望する結果 テーブル名:test id | photo | 1 http://www.test.com/aaa/aa.jpg 2 http://www.test.com/bbb/bb.jpg : : 説明不足などございましたら、再度補足させていただきます。 アドバイスのほどよろしくお願い致します。

    • ベストアンサー
    • MySQL
  • SQL UPDATE 文 GroupByの値を更新したい

    SQLの UPDATE文について質問させていただきます。 テーブル内のデータを日付と時間で GroupBy して カウント求めています。 求めた値(カウント)を、日付をキーにして同じテーブル内のフィールドに更新するSQLを作成したいと考えています。 GroupByして、カウントを求めることはできるのですが、 どうしても、UPDATE文を実行させることができません。 この処理は、SQLで行うことはできるのでしょうか? 下記に、UPDATE前と後のテーブルデータを記載しています。 日付   時刻 20090101 0:00  20090101 0:00 20090102 0:00 20090102 0:00 20090102 1:00 20090103 2:00 ↓ 日付   時刻 カウント 20090101 0:00 2 20090101 0:00 2 20090102 0:00 2 20090102 0:00 2 20090102 1:00 1 20090103 2:00 1 よろしくお願いいたします。

  • すっきりとしたSQL文にしたいのですが

    Oracle9iにてテーブルのデータを更新しようと思っています。 目的としてはAAAのカラムa1とBBBのカラムb1が同一なレコードである場合、 AAAのa2にBBBのb2を更新したいのですが、 <条件> AAA:テーブル1 BBB:テーブル2 a1:CHAR b1:CHAR a2:VERCHAR b2:VERCHAR すべて必須で桁数は10 UPDATE AAA SET AAA.a2 = ( SELECT BBB.b2 FROM BBB WHERE AAA.a1 = BBB.b1) WHERE AAA.a1 = ( SELECT BBB.b1 FROM BBB WHERE AAA.a1 = BBB.b1) ; いまはこんな無駄の多そうなSQLしか分かりません。 この他にも条件が2つ追加される予定なので もっとすっきり更新できる方法を教えていただけませんでしょうか? よろしくお願いします。