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