
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
:
:
説明不足などございましたら、再度補足させていただきます。
アドバイスのほどよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
昨日に引き続き回答します。
文字列の連結は concat関数を使用します。
update test
set photo = concat('http://www.test.com', photo)
where photo is not null
and photo not like 'http%';
where句は
「既にphotoに値が入っていて」かつ「まだhtpp...を付加していない」
条件で更新したいかな、と思って付けました。
条件無しで一括で更新して構わなければwhere以降は不要です。
以下は余計なお世話かもしれませんが。。
何かMySQL関連の書籍はお持ちではないのでしょうか?
今回のご質問程度の内容であれば、逆引き系のリファレンスが一冊あれば、「いつ来るかわからない回答を待つ」よりは、確実に速く(かつ正確な)解法が得られます。
Amazon で「MySQL 逆引き」で検索してみてください。
No.2
- 回答日時:
concat関数を使ってupdateは、既に#1さんが回答されている通りです。
前回の質問で、回答するタイミングがなかったので、参考までに。
「1~100の列値を持つ行を、1回のSQL発行で実装したい」という件。
「1回のSQL」という要件が、どれくらい重要なのか分かりませんが、MySQL 5.0以降とのことなので、ストアドプロシジャで実装するといった方法があります。
ちなみに、
PostgreSQLであれば、
(1)generate_series関数で生成したものをinsert
(2)PostgreSQL 8.4(?)で、「with句での再帰クエリ」が実装されているので、そこで生成したものをinsert
といった実装方法があり得ると思います。再帰クエリは、ちょっと小細工し過ぎではありますが。
SQL Serverでも、SQL Server 2005で、「with句での再帰クエリ」が実装されています。
「ストアドプロシジャで実装」??
まだまだ勉強不足です、、このキーワードでまた語句を勉強してみます。
ご回答ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQLで数字の値のもののみを取...
-
文字列を追加してUPDATEしたい
-
SELECT INTOで一度に複数の変数...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
truncate tableを使って複数の...
-
JDBCを使ってdate型へのINSERT...
-
PostgreSQLのtimestamp型で時間...
-
UPDATEで既存のレコードに文字...
-
既存データをINSERT文にして出...
-
テキストボックスの背景をVB...
-
T-SQLで任意の箇所で強制終了す...
-
エラーを起こす方法
-
実行時エラー:2517 プロシージ...
-
SQLで一定時間周期毎の抽出方法...
-
副問合せを使わずにUNIONと同様...
-
chr(13) と char(13) の違いっ...
-
SQLで、Join句で結合したテ...
-
オラクルのUPDATEで複数テーブル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLで数字の値のもののみを取...
-
集計でテストの各教科の最高得...
-
文字列を追加してUPDATEしたい
-
固定長のデータをmysqlで取り込...
-
datetime型で日付計算ができま...
-
mysql 正規表現について
-
コマンドからDB名に"-"を使う...
-
delete構文のつなげなんですが...
-
次の時間帯の勝率の合計を求め...
-
エラーをいくらチェックしてもD...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
SQLサーバに対するSQL文で抽出...
-
UPDATEで既存のレコードに文字...
-
エラーを起こす方法
-
truncate tableを使って複数の...
-
既存データをINSERT文にして出...
-
timestampのデータはどのように...
おすすめ情報