- ベストアンサー
正規表現を使って前方一致置換は可能でしょうか?
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です。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
replace関数を使えばいいのでは? update a set name=replace(name,'1-6-104','1-6-103') where 検索条件
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
MySQLの正規表現は置換を前提としていません。 WHEREでは正規表現をつかい、置換にはLEFTやMID、CONCATなどを つかって無理やりやるといいかもしれません
質問者
お礼
いつも、ありがとうございます。 テンプテーブルとサブクエリとLIKE分(先頭一致)で解決することにしますね。
お礼
ありがとうございます。 ただ、やはり先頭一致ができないので、 3番目のレコードまで置換されてしまいます・・(汗)