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() 函数返回一个子字符串在一个字符串中第一次出现的位置索引。