MariaDB LOCATE() 函数使用指南
在 MariaDB 中,LOCATE()
是一个内置的字符串函数,它返回一个子字符串在一个字符串中第一次出现的位置索引。
MariaDB LOCATE()
执行不区分大小写的搜索。 和它功能类似的函数还有: INSTR()
和 POSITION()
。
MariaDB LOCATE()
语法
这里是 MariaDB LOCATE()
函数的语法:
LOCATE(substr, str[, startPos])
参数
substr
- 必需的。 在
str
中搜索的子串。 str
- 必需的。 被搜索的字符串。
startPos
- 可选的。 在
str
中开始搜索的位置,从 1 开始。
如果您未提供参数或提供了错误数量的参数, MariaDB 将报告一个错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOCATE'
。
返回值
MariaDB LOCATE()
函数返回子字符串 substr
在字符串 str
中的位置索引。数字索引从 1
开始。如果在 str
中找不到 substr
,LOCATE()
函数将返回 0
。
如果 startPos
为 0
,LOCATE()
函数将返回 0
。
如果子字符串参数为一个空串,LOCATE()
函数将返回 1
。
当任意一个参数为 NULL
时, LOCATE()
函数将返回 NULL
。
MariaDB LOCATE()
示例
基本示例
下面的语句展示了 MariaDB LOCATE()
函数的基本用法:
SELECT
LOCATE('l', 'Hello World'),
LOCATE('l', 'Hello World', 5);
输出:
+----------------------------+-------------------------------+
| LOCATE('l', 'Hello World') | LOCATE('l', 'Hello World', 5) |
+----------------------------+-------------------------------+
| 3 | 10 |
+----------------------------+-------------------------------+
在本示例中, LOCATE('l', 'Hello World', 5)
指定了起始搜索的位置是 5,因此它返回了 10。
不区分大小写
MariaDB LOCATE()
函数执行不区分大小写的搜索,下面的语句说了这一点:
SELECT
LOCATE('He', 'Hello World'),
LOCATE('he', 'Hello World'),
LOCATE('HE', 'Hello World')\G
输出:
LOCATE('He', 'Hello World'): 1
LOCATE('he', 'Hello World'): 1
LOCATE('HE', 'Hello World'): 1
空字符串
如果子字符串为一个空串,LOCATE()
函数将返回 1
。
SELECT LOCATE('', 'Hello World');
输出:
+---------------------------+
| LOCATE('', 'Hello World') |
+---------------------------+
| 1 |
+---------------------------+
起始位置为 0
如果起始位置为 0
,MariaDB LOCATE()
函数将返回 0
。
SELECT LOCATE('He', 'Hello World', 0);
输出:
+--------------------------------+
| LOCATE('He', 'Hello World', 0) |
+--------------------------------+
| 0 |
+--------------------------------+
结论
MariaDB LOCATE()
函数返回一个子字符串在一个字符串中第一次出现的位置索引。