• ベストアンサー

正規表現を使って前方一致置換は可能でしょうか?

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です。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

replace関数を使えばいいのでは? update a set name=replace(name,'1-6-104','1-6-103') where 検索条件

php4
質問者

お礼

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

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

MySQLの正規表現は置換を前提としていません。 WHEREでは正規表現をつかい、置換にはLEFTやMID、CONCATなどを つかって無理やりやるといいかもしれません

php4
質問者

お礼

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

関連するQ&A