MySQLでは、INSERT()
を使用できます 文字列を別の文字列に挿入する関数。
文字列の一部を別の文字列に置き換える(単語を置き換えるなど)か、元の文字列を維持したまま挿入する(単語を追加するなど)ことができます。この関数は、元の文字列が何であるか、新しい文字列を挿入する位置、元の文字列から削除する文字数、および挿入する新しい文字列を決定する4つの引数を受け入れます。
構文は次のとおりです。
INSERT(str,pos,len,newstr)
str
元の文字列、pos
新しい文字列が挿入される位置です。len
は元の文字列から削除する文字数であり、newstr
挿入する新しい文字列です。
単語を置き換える
INSERT()
を使用する例を次に示します。 文字列内の単語を置き換えるには:
SELECT INSERT('Cats and dogs', 6, 3, 'like');
結果:
Cats like dogs
これにより、and
という単語が効果的に置き換えられます。 like
という言葉で 。 6
を使用しました 単語とは6文字のマークで始まり、3
を使用したためです。 削除したい文字数(and
という単語)だからです 長さは3文字です。
単語を挿入
ここでは、元の文字列から何も削除せずに単語を挿入するだけです:
SELECT INSERT('Cats and dogs', 10, 0, 'big ');
結果:
Cats and big dogs
元の文字列から何も削除されない理由は、0
を指定したためです。 (つまり、ゼロ文字を削除する必要があります)。
範囲外の値
元の文字列の長さの外側の位置を指定すると、MySQLは元の文字列を変更せずに返します。
例:
SELECT INSERT('Cats and dogs', 20, 4, 'rabbits');
結果:
Cats and dogs
負の開始位置を使用する別の例を次に示します。
SELECT INSERT('Cats and dogs', -1, 4, 'rabbits');
結果:
Cats and dogs
これは、MySQLのINSERT()
の違いの1つです。 関数とTransact-SQLのSTUFF()
働き。 T-SQLでは、STUFF()
関数はNULL
を返します このような場合。
NULL値の挿入
MySQLのINSERT()
が存在するもう1つの領域 T-SQLのSTUFF()
とは異なります NULL値を使用します。 NULL値を挿入しようとすると、MySQLはNULL
を返します。 。
SELECT INSERT('Cats and dogs', 6, 3, NULL);
結果:
NULL