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
:
:

説明不足などございましたら、再度補足させていただきます。
アドバイスのほどよろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

昨日に引き続き回答します。



文字列の連結は 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 逆引き」で検索してみてください。
    • good
    • 0
この回答へのお礼

ご回答頂いたSQL文でやりたいことが実現できました!

ご回答ありがとうございます。

お礼日時:2011/04/17 18:21

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句での再帰クエリ」が実装されています。
    • good
    • 0
この回答へのお礼

「ストアドプロシジャで実装」??
まだまだ勉強不足です、、このキーワードでまた語句を勉強してみます。

ご回答ありがとうございます。

お礼日時:2011/04/17 18:23

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q歯を削るときなんで痛く感じるのですか? 歯を削るだけなら痛くないのに

歯を削るときなんで痛く感じるのですか?
歯を削るだけなら痛くないのに

Aベストアンサー

歯は基本的に硬組織と呼ばれる硬い結晶で出来ています。一番表面はエナメル質と呼ばれ この硬い結晶成分のみでできています。この部分は削っても痛みは全くありません。
2層目は象牙質(dentin)と呼ばれやや硬い組織で出来ています。そして歯の中央・最深部は歯髄・いわゆる神経と呼ばれる軟組織(普通の神経・血管組織)となっています。
この2層目の象牙質には 歯髄から細い繊維が入り込んでいてエナメル質直下まで 神経組織が伸びています。従って 歯を削る時にこの象牙質を削ると いっしょに神経組織まで削ってしまう事になり 強い痛みを発する事になるんです。普通 象牙質だけを削るよりも、この神経繊維の末端・つまりエナメル質と象牙質の境目を削る時の方がはるかに強く痛みを感じますねぇ~ 痛みを感じない部分から突然痛みを感じる部分に入った瞬間に急激な痛み・あの独特の痛みがあるわけです。
もちろん 歯を削る時の痛みは、神経だけの問題ではありません。タービンと呼ばれる機器・ドリルによって削る事が多いですが、この切削具の振動・回転する摩擦熱等が歯の知覚組織に伝わる事も痛みの原因となります。最近では、タービンを使わないレーザー光線による切削も多くなり、削る時の痛みは大幅に軽減されています。また、機器の振動を抑える工夫もなされており、機器の振動と似た振動を他の箇所に与える事により、痛みの閾値を上げてしまう(わかりやすく言うと 振動で神経を麻痺させて痛みを感じにくくする事)方法も行われています。

さて、通常の治療で歯を削る時は、神経のある歯(虫歯が小さい場合)や 神経を取る処置の場合、麻酔を使うことがほとんどでしょう。
えまく麻酔が効けば 痛みは全く感じなくなります。ただ、歯科の麻酔は歯の神経を麻痺させねばなりません。歯の神経の出口は 歯の根の先端・つまり骨の中にあるんです。
これを麻酔することはなかなかに難しい事なんです。普通 顎の骨は硬く厚い骨が多く なかなか麻酔薬が内部に浸潤してくれません。かなりの力を入れて圧力をかけないと 硬い骨を通り越してくれませんので、歯科の麻酔はそれだけでも痛いのです(^o^;...この時 骨の厚さによって麻酔が効く効かないが別れますね~
実は同じように 歯のエナメル質の厚さによっても削る時の痛みに差があるのです。例えば同じ歯でも、切端部・先っぽの方はエナメル質が厚いので少々削っても痛みません。逆に根元に近い部分はエナメル質が薄く 象牙質がすぐ直下にあるために痛みが感じやすいと言えます。
また、年齢によっても痛み方に大きな差があります。歯は生えたばかりはまだ幼弱で 歯髄が大きく象牙質が薄いのです。それだけ削る時に神経に近くなってしまい痛みが出やすいですねぇ~
逆に生えてから何十年も経った歯は・・・・つまり老人の歯は 多少削っても痛みません。これは長い間に神経が退化したり象牙質が石灰化して硬化したために 痛みを感じる神経が退化して・あるいは無くなってしまったからです。麻酔を使わずにどんなに削っても 全く痛まないことも しばしばあります。

いずけにしても痛みの感じ方には大きな個人差があります。痛いと感じたなら 左手を挙げて・・・・・ヽ(;^^)/ まぁ、歯科医師にお伝え下さい。

歯は基本的に硬組織と呼ばれる硬い結晶で出来ています。一番表面はエナメル質と呼ばれ この硬い結晶成分のみでできています。この部分は削っても痛みは全くありません。
2層目は象牙質(dentin)と呼ばれやや硬い組織で出来ています。そして歯の中央・最深部は歯髄・いわゆる神経と呼ばれる軟組織(普通の神経・血管組織)となっています。
この2層目の象牙質には 歯髄から細い繊維が入り込んでいてエナメル質直下まで 神経組織が伸びています。従って 歯を削る時にこの象牙質を削ると いっしょに神経組織...続きを読む

QDB: MySQL バージョン:5.0.45

DB: MySQL バージョン:5.0.45
条件:
NOのデータ型は、Varchar
NOは、1から11まで存在しているとします。

1)Select MAX(NO+1) は、12が取得されます。
2)Select MAX(NO)+1 は、10が取得されます。


上記のような1)、2)のような違いがでる理由が知りたいです。
1)は、MySQLの仕様?で自動でint型に変換されているため、最大値11を取得し、+1をしているのでしょうか?

よろしくお願い致します。

Aベストアンサー

>そこまではわかる

(1)はMAX(NO+1)は、NO+1したものすなわち2,3,4,・・・,11,12の最大値だから12
(2)はNOの文字列順列1,10,11,2,3,・・・・7,8,9の最大値9に1をたすから10

すなわち(1)は文字列を数値にキャストしてから最大値をとり、
(2)は文字列で最大値をとってから数値にキャストすることによる違いです。

Q歯を削る(レーザー、カリソルブ、水流、ドリル)比較について

【質問・要点】
昨日、インレーが取れました。そこで、少し削って新しいインレーを入れると思うのですが、以下4つを考えたのですが、いったい、どれが最も良い治療法なのでしょうか?

レーザー
カリソルブ
水流で削る
ドリルで削る

【一応私が考える判断基準】
最も歯を削る体積が小さい治療法、
術後、2次齲蝕が最も少ない治療法
最も痛くない治療法

他に、もっと良い治療法やアドバイスがあれば、ご教示、何卒、宜しくお願い致します。

Aベストアンサー

歯科医です。
>レーザー
>カリソルブ
>水流で削る
>ドリルで削る
沢山質問されていますが
ここでまとめて。
まず、レーザーでインレーが入れられるほど削るのはできないです。削除量が圧倒的にすくなくて、綺麗な形態に削ることができないから。
カリソルブも同様です。
水流で削るのは歯に対して現在そういう器具はありません。
ドリルで削る・・・・ドリルというのは恐らくエアタービンもしくはエンジンのどちらかをさしておられる
のでしょうか。タービンで削ることが一番でしょうね。

インレーがはずれたのではなく
新しい虫歯であるのなら削除量のことを考える余地があります。しかし
何分にもすでにインレーの体積分は歯が失われているので
削除量を少なくする事に意義は見出せません。
さらに虫歯になっていなければ大抵の場合はほとんど削らなくてもよいでしょう。
取れたところがさらに虫歯になっているのであれば
削除量云々言う前に
虫歯をとりさることが肝要です。二次カリエスにならないためにはこれがもっとも大切なことです。
痛くない治療法・・・は麻酔を的確に使用して治療することでしょう。

それから
インレーはわりと易しい技工物ですので
一般的なレベルの技工士さんであれば
十分な適合の良いきれいなインレーを作りますよ。

異種金属が口腔内にあることの是非は討論の余地があるのですが
一般的に言って
接しているところでなければ
大きな問題はおきないです。
接するところではそこに小さな電池ができるようなものなので
電流が流れます。

それよりなにより
一日も早く治療を受けてください。
放置しておくことに良い点は一つもありません。

歯科医です。
>レーザー
>カリソルブ
>水流で削る
>ドリルで削る
沢山質問されていますが
ここでまとめて。
まず、レーザーでインレーが入れられるほど削るのはできないです。削除量が圧倒的にすくなくて、綺麗な形態に削ることができないから。
カリソルブも同様です。
水流で削るのは歯に対して現在そういう器具はありません。
ドリルで削る・・・・ドリルというのは恐らくエアタービンもしくはエンジンのどちらかをさしておられる
のでしょうか。タービンで削ることが一番でしょうね。

イン...続きを読む

QPHP5.1.2 + MySQL5.0.20 + phpMyAdmin2.8.0.3の組み合わせ

windows2000Proの環境にて
・PHP5.1.2
・MySQL5.0.20
・phpMyAdmin2.8.0.3
を使用し、phpMyAdminでテーブルを作成したいのですがいろいろなサイトを検索し、設定を行ったのですが
どうしても"http://localhost/phpMyAdmin"でログインしてもエラーになってしまいます。
「phpMyAdmin - エラー
扱えない拡張子のファイルです,<br />PHP の設定をチェックしてください」

抜粋して設定した内容
・php.ini(PHP)
------------------------------------
   extension=php_mbstring.dll : コメントアウト
extension=php_mysqli.dll : 行を追加
------------------------------------

・config.inc.conf(phpMyAdmin)
------------------------------------
$cfg['PmaAbsoluteUri']
= 'http://127.0.0.1/phpMyAdmin/';
$cfg['PmaNoRelation_DisableWarning']
= TRUE;
$cfg['Servers'][$i]['host']
= 'localhost' ;
$cfg['Servers'][$i]['port']
= '3306';
$cfg['Servers'][$i]['socket']
= '';
$cfg['Servers'][$i]['connect_type']
= 'tcp';

$cfg['Servers'][$i]['extension']
= 'mysqli';
$cfg['Servers'][$i]['auth_type']
= 'config';
$cfg['Servers'][$i]['user']
= 'root';
$cfg['Servers'][$i]['password']
= 'demo';
$cfg['Servers'][$i]['only_db']
= 'demo-db';
------------------------------------

今回 PHP他を使用し、webを作成しているのですがセットアップの段階でとまってしまい困っています。
同様な現象を解決できた人がいらっしゃいましたら
どうか教えて下さい。

windows2000Proの環境にて
・PHP5.1.2
・MySQL5.0.20
・phpMyAdmin2.8.0.3
を使用し、phpMyAdminでテーブルを作成したいのですがいろいろなサイトを検索し、設定を行ったのですが
どうしても"http://localhost/phpMyAdmin"でログインしてもエラーになってしまいます。
「phpMyAdmin - エラー
扱えない拡張子のファイルです,<br />PHP の設定をチェックしてください」

抜粋して設定した内容
・php.ini(PHP)
------------------------------------
   extension=php_mbstring.dll : コメントアウ...続きを読む

Aベストアンサー

間違えました
extension=php_mysqli.dll
を使ってるんですね
phpinfoでmysqliの表示はされてるか確認してみてください。
libmysql.dllのシステムフォルダへのコピーはされていますか。

Q勉強の為に睡眠削るのは確かにダメですが 勉強スケジュール上、このままでは間に合わないという状況では、

勉強の為に睡眠削るのは確かにダメですが
勉強スケジュール上、このままでは間に合わないという状況では、削るのは仕方なくないですか?エナジードリンクなり、使って

Aベストアンサー

まあその前に 遊びの時間は削るはな
その上で足りなければ トイレの時間中や バスや電車の移動中 そして場合によると食事中なども勉強する。
それでも足りない時は 睡眠5時間とかになるかな。

コーヒー 音楽 エナジードリンク ハーブ 辛い食べ物 いろいろ使いながら。
最低必要な睡眠時間ってのは人によっても違うが 短期的なら4時間睡眠でも案外行けると思う。
ただ 何というか 考え方が狭くなるように思う。
ヒラメキが出ないのだな。

別に問題はないと思うのだ。
こういう経験も大切だし 焦りさえしなければ十分得るものはある。
脳にも緩急は必要だし 時にフルスロットルも良い・・が あまり長くやると痛む。

よほど深く眠らないと4時間で2週間以上続けるのは難しかった。
そして6時間程度寝ないと 自律神経系は慣れでなんとかなるみたいなんだが どうもホルモンバランスが悪くなる感じ。
そこは注意すべきかと。

Qmysql コマンドの--safe-updatesでUPDATEできません

お世話になります。
--safe-updatesのモードのことでわからず困っております。

WHEREで制限しなければUPDATEできないようにしようと、
mysql -uroot -p**** --safe-updates
でモニタを起動し、次のテーブルtestに対して
+------+------+------+
| bang | uria | tuki |
+------+------+------+
| A101 | 184 | 4 |
| A107 | 777 | 6 |
+------+------+------+
update test set bang='ttt' where uria=777;
とすると、safe update modeの理由のエラーになってしまいます。
同じことを、通常のモードのモニタでは実行できます。
where句を付けているので実行できないのは、なぜでしょうか。
バージョンは5.0.45です。
どなたか、お教えいただけないでしょうか。

Aベストアンサー

--safe-updatesは、以下のように操作を制限しているようです。

(1)検索条件がないupdateやdeleteの禁止
(2)検索条件で指定した列に、インデクスが未定義の場合は、(1)と同様。

上記の(2)に、引っ掛かったのでは?

create index test_idx on test(uria)

といったインデクスを定義し、実行してみてください。

Q固定された木材を削る道具は?

部屋のドアを、内開きから外開きに変える計画を立てています。上、左右のドア枠は内側と外側のサイズが同じなのですが、下側のドア枠は削る必要があります。ドアと枠は共に木製です。
そこで質問なのですが、ドア枠のように固定された木材を削る道具は、どういったものが最適でしょうか?
回答、よろしくお願いします。

Aベストアンサー

こんにちは。
どれくらい削るかにもよりますが。

ごくわずかであれば、電動〈仕上げ)サンダーっていう、電動紙やすりみたいな機械があります。
レンタルしてるかもしれないですね。

カンナを使うなら、角は(何種類かの目の粗さの)木工ヤスリを使って、仕上げは紙やすりで。

ところで、ドアの方を削るわけにはいかないんでしょうか?
大工さんが間違えてドア枠を作って取り付けてしまった時に、ドア下部を削ってましたよ。(^^;
問題がなければ、ドアを削った方が得策かと思いますが。

QMysql でレコードを追加した時間はMysql側で自動的に保存してい

Mysql でレコードを追加した時間はMysql側で自動的に保存していて
それを取得できるようになっていますでしょうか?
それとも入力する側が気をまわして入力時間を保存するしかないでしょうか?
ご存知の方教えていただければ幸いです。

Aベストアンサー

>具体的に命令文を使って教えて頂ければ幸いです。

たとえば

create table hoge(id int not null primary key,data varchar(100),stamp timestamp);
insert into hoge (id,data) values(1,'aaa');
select * from hoge;
update hoge set data='bbb' where id=1;
select * from hoge;

最初のselectでのstampとあとのstampの日時が変わっているのがわかると思います

Q歯を削る時痛かったを英語で?

教えて頂きたいのですが、歯医者さんで虫歯を削る時に痛かったと英語で言いたいのですが
I was pain when I shave bat tooh.
であってますか?
削るというのもshaveでいいのかわからないのですが、いい単語があれば教えて頂きたいです!

Aベストアンサー

こんにちは。4/11のご質問ではお礼のお返事を有難うございまして。

ご質問:
<I was pain when I shave bat tooh.であってますか?>

以下の点で訂正を要します。

1.I=painではないのでbe動詞はここでは不適です。

2.動詞はhadなどを使って、
I had a pain「痛みがあった」→「痛かった」
とするのが自然です。

3.shaveはどちらかというと「削ぎ落とす」「削ぐ」の意味に近くなります。歯医者でいう「削る」とは、「穴をあけること」ですから、ここはdrillが適切です。

4.I shave:「私が削る」のではないので、ここでは使役動詞haveなどを使って「削ってもらう」にします。
例:
I have my tooth drilled.
「私の歯を、削らせる」→「削ってもらう」

ここでdrilledと過去分詞になっているのは、目的語Oであるmy toothと、補語Cであるdrilledの関係が、受動の関係になるからです。
例:
my tooth is drilled「歯が、削られる」

5.虫歯はbad toothと綴りを正します。

6.以上を踏まえて原文に忠実な訂正例は
I had a pain when I had my tooth drilled by dentist.
「歯医者に歯を削ってもらった時、痛かった」
となります。

7.他にも以下のような表現もあります。
I felt some pain when I had my tooth drilled.
「歯医者に歯を削ってもらった時、少し痛かった」

以上ご参考までに。

こんにちは。4/11のご質問ではお礼のお返事を有難うございまして。

ご質問:
<I was pain when I shave bat tooh.であってますか?>

以下の点で訂正を要します。

1.I=painではないのでbe動詞はここでは不適です。

2.動詞はhadなどを使って、
I had a pain「痛みがあった」→「痛かった」
とするのが自然です。

3.shaveはどちらかというと「削ぎ落とす」「削ぐ」の意味に近くなります。歯医者でいう「削る」とは、「穴をあけること」ですから、ここはdrillが適切です。

4.I shave...続きを読む

Q【CentOS3.7】MySQL4.1.22、php-mysql4.3.2のインストールについて

Linux及び、MySQL初心者です。

ソフトウェア開発会社で勤務して1年半ほどになりますが、
以前テスト用に使用していたサーバの内容を、別機に移行する作業を
まかされることになりました。
PHPとMySQLが使用できるWEBサーバです。

元サーバに
CentOS3.7、Apache2.0.46、PHP4.3.2、MySQL4.1.21
がインストールされていることを確認。
移行後サーバにCentOS3.7をインストールし、
その際にそれぞれのソフトウェアもデフォルトでインストールしたところ、
MySQLだけ「3.23.58-16」と古いバージョンになっていました。

そこで
yum remove mysqlとし、
・mysql-bench-3.23.58-16.RHEL3.1
・mod_auth_mysql-20030510-2.ent
・libdbi-dbd-mysql-0.6.5-5
・mysql-devel-3.23.58-16.RHEL3.1
・php-mysql-4.3.2-39.ent
・mysql-3.23.58-16.RHEL3.1
・mysql-server-3.23.58.16.RHEL3.1
を削除。その後、mysql-4.1.22.tar.gzをダウンロードし、
ソースからインストールしました。

しかしこれでは、php-myadminが消えてしまうため、
yum install php-mysqlを実行したところ、
・mysql-3.23.58-16.RHEL3.1
も一緒にインストールされます。
mysqlがダブってインストールされてしまうということでしょうか。
(ちなみに、元サーバで「rpm -qa | grep mysql」とすると、
 ・php-mysql-4.3.2.26.ent
 と表示されます。
 php-mysqlだけrpmインストールされているということですよね?)

どのようにインストールしたら、この問題を解決できるでしょうか。
(既に2日ほどこの問題で詰まっています)
要点がまとまっていない質問で申し訳ありませんが、
回答をお願いできませんでしょうか。

足りない情報がありましたら、追記しますので、よろしくお願いいたします。

Linux及び、MySQL初心者です。

ソフトウェア開発会社で勤務して1年半ほどになりますが、
以前テスト用に使用していたサーバの内容を、別機に移行する作業を
まかされることになりました。
PHPとMySQLが使用できるWEBサーバです。

元サーバに
CentOS3.7、Apache2.0.46、PHP4.3.2、MySQL4.1.21
がインストールされていることを確認。
移行後サーバにCentOS3.7をインストールし、
その際にそれぞれのソフトウェアもデフォルトでインストールしたところ、
MySQLだけ「3.23.58-16」と古いバージョンにな...続きを読む

Aベストアンサー

勘違いだったら申し訳ありませんがphp-myadminとはphpMyAdminのことでしょうか?

phpMyAdminはコンパイルしたりするアプリではなくたんなるphpの
スクリプトですので、必要に応じてサイトから手動でとってきて
展開するという手でいかがですか?

参考URL:http://www.phpmyadmin.net/home_page/index.php


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング