sql >> データベース >  >> RDS >> Mysql

ワイルドカードに置き換えるためのMySQL

    更新:MySQL8.0には REGEX_REPLACE()<という関数があります。 / a> 。

    以下は2014年の私の回答です。これは8.0より前のすべてのバージョンのMySQLに引き続き適用されます。

    REPLACE()は、ワイルドカード、パターン、正規表現などをサポートしていません。REPLACE()は、ある定数文字列を別の定数文字列に置き換えるだけです。

    複雑なことを試して、文字列の先頭部分と末尾部分を選択することができます。

    UPDATE table
    SET Configuration = CONCAT(
          SUBSTR(Configuration, 1, LOCATE('<tag>', Configuration)+4),
          NEW_DATA,
          SUBSTR(Configuration, LOCATE('</tag>', Configuration)
        )
    

    ただし、これは、<tag>が複数回出現する場合には機能しません。 。

    行をアプリケーションにフェッチして戻し、お気に入りの言語を使用して文字列の置換を実行し、行をポストバックする必要がある場合があります。つまり、行ごとに3ステップのプロセスです。




    1. ORA-02287:シーケンス番号はここでは許可されていません

    2. MySQL-スレッドごとに最新のトピックを表示する方法

    3. MySQLデータベースをバックアップする方法を学ぶ

    4. 連続番号でSQLを更新する