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 | RESULT |
|---|---|---|---|
| Krishna | Sharma | 19 | 5 |
| Raj | Kandukuri | 20 | 0 |
| Ramya | Ramapriya | 25 | 3 |
| Mac | Mohan | 26 | 0 |
mysql-instr-function.html