MySQL INSTR() 函数



MySQL 的 INSTR() 函数用于查找给定字符串中子字符串的起始位置。

它接受两个参数:第一个参数是原始字符串,第二个参数是要在原始字符串中搜索的子字符串。

此函数查找并返回子字符串在提供的字符串中的起始位置(索引)。如果在原始字符串中找不到子字符串,则此函数返回 0。如果将 NULL 传递给任一参数,则此函数返回 NULL 作为结果。

语法

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

INSTR(str,substr)

参数

此函数将字符串和要搜索的子字符串作为参数。

返回值

此函数返回子字符串在字符串中第一次出现的索引,如果未找到则返回 0。

示例

在以下示例中,我们将在给定字符串中搜索子字符串“how”:

SELECT INSTR('Hello how are you', 'how');

以下是上述代码的输出:

INSTR('Hello how are you', 'how')
7

示例

如果提供的子字符串在给定字符串中找不到,则该函数返回 0:

SELECT INSTR('Tutorialspoint', 'unknown');

获得的输出如下:

INSTR('Tutorialspoint', 'unknown')
0

示例

您还可以将数值作为字符串参数传递给此函数:

SELECT INSTR('638235 25 28 261 91', '25');

我们得到以下输出:

INSTR('638235 25 28 261 91', '25')
8

示例

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

SELECT INSTR(NULL, 'point');

生成的输出如下所示:

INSTR(NULL, 'point')
NULL

示例

您还可以使用 INSTR() 函数搜索表列值中的子字符串。

让我们创建一个名为“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

以下查询在“LAST_NAME”列中搜索“ma”:

SELECT FIRST_NAME, LAST_NAME, AGE, INSTR(LAST_NAME, 'ma') as RESULT
FROM EMP;

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

FIRST_NAME LAST_NAME AGE 结果
Krishna Sharma 19 5
Raj Kandukuri 20 0
Ramya Ramapriya 25 3
Mac Mohan 26 0
mysql-instr-function.htm
广告