0

重複の可能性:
MySQL で正規表現の置換を行うには?

「?campaign=qwertysomerandomtext"」で始まる文字列を「"」に置き換えようとしています。

これに「?campaign=%_」のようなワイルドカードを使用して、「"」に置き換えてみました。しかし、ワイルドカードは置換では機能しないことがわかりました。

その問題に対処する他の方法はありますか?substring from to のようなものを使用することを考えました。しかし、これまでのところ、私にとってうまくいくものは何も見つかりませんでした。

誰かがその問題で私を助けてくれることを願っています。

よろしくbnz

4

1 に答える 1

1

で始まる文字列を '?campaign=qwertysomerandomtext"'置き換えて、を置き換えようとし'"'ます。

このリクエストを文字通り受け取ると、

UPDATE t SET s = '"' WHERE s = '?campaign=qwertysomerandomtext"'

検索文字列の最後と置換文字列の内側の両方で、質問から二重引用符をコピーしました。これがエラーの場合は、調整してください。

2番目の段落で述べたように、ランダムなテキストがプレースホルダーであり、ワイルドカードである必要がある場合は、

UPDATE t SET s = '"' WHERE s = '?campaign=%_"'

置き換えたいテキストが、要求した方法の最初ではなく、他の文字列の最後にある場合は、次のことができます。

UPDATE t SET s = LEFT(s, LOCATE('?campaign=', s)) WHERE s = '?campaign=%_"'

これにより、キャンペーンスタッフの位置が特定され、それ以降のすべてが削除されます。

正規表現は必要ありません。一般に、、、、およびを組み合わせることLOCATELEFT、ほとんど達成できます。RIGHTSUBSTRCONCAT

于 2012-07-25T13:55:07.960 に答える