MySQL INSERT() 函数

MySQL INSERT() 函数在一个字符串中插入一个新的字符串,该新的字符串会替换源字符串中指定位置开始的指定长度的子字符串。

INSERT() 语法

这里是 MySQL INSERT() 函数的语法:

INSERT(str, pos, len, newstr)

参数

str
必需的。 需要处理的字符串。
pos
必需的。 开始插入新字符串 newstr 的位置。pos 的值从 1 开始。
len
必需的。 要被替换的字符的数量。
newstr
必需的。 要插入的新字符串。

返回值

INSERT(str, pos, len, newstr) 函数返回被处理后的原字符串 str,其中 str 中从 pos 开始长度为 len 的子字符串被 newstr 替换掉。

  • 如果 len 为 0,则直接在 pos 插入字符串,而不进行替换。
  • 如果 pos 不在字符串长度范围内,INSERT() 函数将返回原始字符串。
  • 如果 len 不在字符串从位置 pos 的剩余部分的长度内,INSERT() 函数将从位置 pos 替换字符串的剩余部分。
  • 如果任何参数是 NULLINSERT() 函数将返回 NULL

INSERT() 示例

插入一个字符

SELECT INSERT('Hello_World', 6, 1, ' ');
+----------------------------------+
| INSERT('Hello_World', 6, 1, ' ') |
+----------------------------------+
| Hello World                      |
+----------------------------------+

INSERT() 参数为 NULL

  • 如果 INSERT() 任何参数为 NULLINSERT() 函数将返回 NULL
SELECT
    INSERT(NULL, 6, 1, ' ') null_1,
    INSERT('Hello_World', NULL, 1, ' ') null_2,
    INSERT('Hello_World', 6, NULL, ' ') null_3,
    INSERT('Hello_World', 6, 1, NULL) null_4;
+--------+--------+--------+--------+
| null_1 | null_2 | null_3 | null_4 |
+--------+--------+--------+--------+
| NULL   | NULL   | NULL   | NULL   |
+--------+--------+--------+--------+