プロが教える店舗&オフィスのセキュリティ対策術

table a に以下のレコードが3件あるとします。

id| name
1 | 1-6-104-1
2 | 1-6-104-2
3 | 2-1-6-104

この状態で、1-6-104の部分だけを1-6-103へ置換し、
以下のようにUPDATEしたいのですが1つのSQLで可能でしょうか?

id| name
1 | 1-6-103-1
2 | 1-6-103-2
3 | 2-1-6-104

MySQLのバージョンは5.1です。よろしくお願いします。

A 回答 (2件)

replace関数を使えばいいのでは?



update a
set name=replace(name,'1-6-104','1-6-103')
where 検索条件
    • good
    • 0
この回答へのお礼

ありがとうございます。
ただ、やはり先頭一致ができないので、
3番目のレコードまで置換されてしまいます・・(汗)

お礼日時:2010/01/08 12:39

MySQLの正規表現は置換を前提としていません。


WHEREでは正規表現をつかい、置換にはLEFTやMID、CONCATなどを
つかって無理やりやるといいかもしれません
    • good
    • 0
この回答へのお礼

いつも、ありがとうございます。
テンプテーブルとサブクエリとLIKE分(先頭一致)で解決することにしますね。

お礼日時:2010/01/08 13:00

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

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