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

MySQL:最初の文字列を除くフィールド内の文字列の出現を置き換えます

    「MyString」が常にフィールドの最初の用語として出現する場合、これは機能します:

    update MyTable set MyField = replace(MyField, ' MyString','')
    

    上記の重要なポイントは、先頭にスペースが付いた「MyString」のオカレンスを探すことです。そのため、フィールドの先頭の最初のオカレンスは無視されます。

    ただし、これは脆弱すぎる可能性があると思います。「MyString」の最初のオカレンスがフィールドの先頭にない場合はどうなりますか?

    この後者の場合、次のものが必要です。

    UPDATE 
        MyTable 
    SET 
        MyField = 
        CONCAT(
            LEFT(MyField,INSTR(MyField,'MyString') + LENGTH('MyString')), 
            REPLACE(RIGHT(MyField, LENGTH(MyField) - (INSTR(MyField,'MyString') + LENGTH('MyString'))), 'MyString','') 
        )
    

    これは、フィールドを2つに分割します。最初の部分は「MyString」の最初のオカレンスまでで、2番目の部分はそれ以降のすべてのオカレンスを置き換えます。




    1. MySQL SELECTはここ数日ですか?

    2. sp_executeが何をしているのかを見る

    3. IN()を使用してクエリの結果を別のクエリに使用する

    4. dtexecを使用したSSISパッケージの実行