MySQL POSITION() 函数
MySQL POSITION() 函数用于查找给定字符串中子字符串的位置。
它接受一个字符串值和一个子字符串作为参数,并返回原始字符串中指定子字符串首次出现的位置。
字符串中第一个字符的位置从 1 开始。如果在原始字符串中未找到该子字符串,则返回 0 作为输出。查询不区分大小写。
MySQL POSITION() 函数与 LOCATE() 函数同义。
语法
以下是 MySQL POSITION() 函数的语法 -
POSITION(substring IN string);
参数
此函数接受一个子字符串和一个要搜索的字符串作为参数。
返回值
此函数返回子字符串在字符串中首次出现的位置,如果未找到则返回 0。
示例
在下面的示例中,我们使用 POSITION() 函数查找子字符串"how"在给定字符串中的位置 -
SELECT POSITION('how' IN 'Hello how are you');
以下是上述代码的输出 -
| POSITION('how' IN 'Hello how are you') |
|---|
| 7 |
示例
您也可以将数值作为参数以字符串的形式传递给第一个参数 -
SELECT POSITION('6522 7262 8972 92 112' IN 5);
输出结果如下 -
| POSITION('6522 7262 8972 92 112' IN 5) |
|---|
| 0 |
示例
如果在给定字符串中找不到指定的子字符串,则函数返回 0 -
SELECT POSITION('unknown' IN 'Tutorialspoint');
结果如下 -
| POSITION('unknown' IN 'Tutorialspoint') |
|---|
| 0 |
示例
如果传递给此函数的任何参数为 NULL,则返回 NULL -
SELECT POSITION(NULL IN 'Tutorialspoint');
以下是上述代码的输出 -
| POSITION(NULL IN 'Tutorialspoint') |
|---|
| NULL |
示例
让我们创建一个名为"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 |
以下查询在 EMP 表的"LAST_NAME"列中搜索"ma" -
SELECT FIRST_NAME, LAST_NAME, AGE, POSITION('ma' IN LAST_NAME) 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-position-function.html