MariaDBでは、INSERT()
は、サブストリングを別のストリングに挿入できる組み込みのストリング関数です。
構文
構文は次のようになります:
INSERT(str,pos,len,newstr)
str
文字列、pos
挿入の開始位置、len
置換する文字数、およびnewstr
挿入する部分文字列です。
例
基本的な例は次のとおりです。
SELECT INSERT('The hot sun', 5, 3, 'red');
結果:
+------------------------------------+ | INSERT('The hot sun', 5, 3, 'red') | +------------------------------------+ | The red sun | +------------------------------------+
ここで、hot
という単語を置き換えました red
という言葉で 。
以下は、位置と長さの引数が結果にどのように影響するかを示すためのその他の例です。
SELECT
INSERT('The hot sun', 5, 0, 'red ') AS "1",
INSERT('The hot sun', 5, 3, 'black hole') AS "2",
INSERT('The hot sun', 1, 7, 'Black hole') AS "3";
結果:
+-----------------+--------------------+----------------+ | 1 | 2 | 3 | +-----------------+--------------------+----------------+ | The red hot sun | The black hole sun | Black hole sun | +-----------------+--------------------+----------------+
間違った開始位置
開始位置が文字列の長さの外側にある場合、元の文字列が返されます。
SELECT
INSERT('The hot sun', 0, 3, 'red ') AS "1",
INSERT('The hot sun', -5, 3, 'red') AS "2",
INSERT('The hot sun', 20, 3, 'red') AS "3";
結果:
+-------------+-------------+-------------+ | 1 | 2 | 3 | +-------------+-------------+-------------+ | The hot sun | The hot sun | The hot sun | +-------------+-------------+-------------+>
長い引数
長さ(3番目の引数)が文字列の残りの部分と同じかそれより長い場合、文字列の残りの部分はサブ文字列に置き換えられます。
例:
SELECT
INSERT('The hot sun', 5, 10, 'red ') AS "1",
INSERT('The hot sun', 9, 3, 'pavement') AS "2",
INSERT('The hot sun', 9, 4, 'pavement') AS "3",
INSERT('The hot sun', 1, 20, 'red') AS "4";
結果:
+----------+------------------+------------------+------+ | 1 | 2 | 3 | 4 | +----------+------------------+------------------+------+ | The red | The hot pavement | The hot pavement | red | +----------+------------------+------------------+------+
ヌル引数
null
を提供する いずれの引数についても、結果はnull
になります。 :
SELECT
INSERT(null, 5, 10, 'red ') AS "1",
INSERT('The hot sun', null, 3, 'pavement') AS "2",
INSERT('The hot sun', 9, null, 'pavement') AS "3",
INSERT('The hot sun', 1, 20, null) AS "4";
結果:
+------+------+------+------+ | 1 | 2 | 3 | 4 | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
間違った数の引数を指定する
INSERT()
を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:
SELECT INSERT();
結果:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1