MySQL INSERT() 函数



MySQL 的INSERT()函数用于在指定位置将新的字符串插入到给定字符串中,并替换一定数量的字符。

如果提供的插入位置超出字符串长度,则返回原始字符串,不做任何更改。如果提供的替换长度大于字符串剩余部分的长度,则将从该位置开始替换到字符串末尾。

语法

以下是 MySQL INSERT() 函数的语法:

INSERT(str,pos,len,newstr)

参数

以下是该函数接受的参数:

  • str 是需要插入新子字符串的字符串值。

  • pos 是需要添加子字符串的位置。

  • len 是要插入的新字符串的长度。

  • newstr 是要插入的新字符串。

返回值

此函数返回一个新的字符串,其中指定的子字符串被另一个字符串替换。

示例

在下面的示例中,我们将子字符串 'Tutorials' 插入到字符串 'Tutorialspoint' 的位置 10,替换 3 个字符:

SELECT INSERT('Tutorialspoint', 10, 3, 'Tutorials');

以下是上述代码的输出:

INSERT('Tutorialspoint', 10, 3, 'Tutorials')
TutorialsTutorialsnt

示例

如果 'pos' 值不大于原始字符串的长度,则函数返回原始字符串:

SELECT INSERT('Tutorialspoint', 20, 5, 'Tutorials');

获得的输出如下:

INSERT('Tutorialspoint', 20, 5, 'Tutorials')
Tutorialspoint

示例

如果 'len' 值不大于原始字符串的长度,则函数将原始字符串的其余部分替换为新字符串:

SELECT INSERT('Tutorialspoint', 5, 20, ' welcome ');

我们得到如下输出:

INSERT('Tutorialspoint', 5, 20, ' welcome ')
Tuto welcome

示例

如果传递给此函数的任何参数为 NULL,则函数返回 NULL:

SELECT INSERT('NULL', 5, 20, ' welcome ');

产生的结果如下所示:

INSERT('NULL', 5, 20, ' welcome ')
NULL

示例

您还可以使用 INSERT() 函数将表的列值替换为您想要的字符串。

让我们创建一个名为“EMP”的表,并使用 CREATE 和 INSERT 语句向其中插入记录,如下所示:

CREATE TABLE EMP(
   FIRST_NAME  CHAR(20) NOT NULL,
   LAST_NAME  CHAR(20),
   AGE INT,
   INCOME FLOAT
);

现在,让我们使用 INSERT 语句向其中插入记录:

INSERT INTO EMP VALUES 
('Krishna', 'Sharma', 19, 2000),
('Raj', 'Kandukuri', 20, 7000),
('Ramya', 'Ramapriya', 25, 5000),
('Mac', 'Mohan', 26, 2000);

获得的 EMP 表如下:

FIRST_NAME LAST_NAME AGE INCOME
Krishna Sharma 19 2000
Raj Kandukuri 20 7000
Ramya Ramapriya 25 5000
Mac Mohan 26 2000

以下查询将 'FIRST_NAME' 列中的值替换为一个公共字符串:

SELECT FIRST_NAME, LAST_NAME, AGE, INSERT(FIRST_NAME, 2, 50, ' REST OF THE STRING') as RESULT
FROM EMP;

执行上述代码后,我们将获得以下输出:

FIRST_NAME LAST_NAME AGE RESULT
Krishna Sharma 19 K REST OF THE STRING
Raj Kandukuri 20 R REST OF THE STRING
Ramya Ramapriya 25 R REST OF THE STRING
Mac Mohan 26 A REST OF THE STRING
mysql-insert-function.htm
广告