MySQL が正規表現ベースの文字列置換をサポートしているとは思えません — ドキュメントにはそのようなものはありません — しかし、次のような式を書くことができます:
CASE WHEN path_plus_filename REGEXP '^/wp-content/uploads/2012/10/.*[.]jpg$'
THEN REPLACE(path_plus_filename, '%2B', '_')
ELSE path_plus_filename
END
これは を返しますが、すべてが一致する場合 (および場合のみ)にすべてをpath_plus_filename置き換えます。%2B_^/wp-content/uploads/2012/10/.*[.]jpg$
または、UPDATEクエリではなくステートメントが必要な場合は、次のように記述できます。
UPDATE table_that_contains_path_plus_filename_column
SET path_plus_filename = REPLACE(path_plus_filename, '%2B', '_')
WHERE path_plus_filename REGEXP '^/wp-content/uploads/2012/10/.*[.]jpg$'
;
追加するように編集:ちなみに、これはここでもそこでもありませんが、正規表現の問題は、%2B前に/wp-content/uploads/2012/10/+ちょうど1 文字、後ろにちょうど2 文字 +を付ける必要があることjpgです。許容される文字数にある程度の柔軟性を持たせるには、.*("0 個以上の文字") または.+("1 個以上の文字") または.{5,20}("5 から 20 文字の間") などを使用する必要があります。