MariaDB POSITION() 函数使用指南
在 MariaDB 中,POSITION()
是一个内置的字符串函数,它返回一个字符串中子字符串第一次出现的位置。
POSITION()
函数执行是不区分大小写的搜索。
与 POSITION()
函数功能类似的函数有: INSTR()
和 LOCATE()
。
MariaDB POSITION()
语法
这里是 MariaDB POSITION()
函数的语法:
POSITION(substr IN str)
注意,这里有个 IN
关键字,这与 LOCATE(substr, str)
和 INSTR(str, substr)
不同。
参数
substr
- 必需的。 在
str
中搜索的子串。 str
- 必需的。 被搜索的字符串。
如果您未提供参数或提供了错误的参数,MariaDB 将报告一个错误:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
。
返回值
MariaDB POSITION()
函数返回子字符串 substr
在字符串 str
中的位置索引。数字索引从 1
开始。如果在 str
中找不到 substr
,POSITION()
函数将返回 0
。
如果子字符串参数为一个空串,LOCATE()
函数将返回 1
。
当任意一个参数为 NULL
时, POSITION()
函数将返回 NULL
。
MariaDB POSITION()
示例
基本用法
下面是一个基本示例:
SELECT POSITION('World' IN 'Hello World');
输出:
+------------------------------------+
| POSITION('World' IN 'Hello World') |
+------------------------------------+
| 7 |
+------------------------------------+
MariaDB POSITION()
执行不区分大小写的搜索:
SELECT
POSITION('world' IN 'Hello World'),
POSITION('WORLD' IN 'Hello World');
输出:
+------------------------------------+------------------------------------+
| POSITION('world' IN 'Hello World') | POSITION('WORLD' IN 'Hello World') |
+------------------------------------+------------------------------------+
| 7 | 7 |
+------------------------------------+------------------------------------+
第一次
如果要搜索的子字符串多次出现, POSITION()
仅返回子字符串第一次出现的位置:
SELECT POSITION('o' IN 'Hello World');
输出:
+--------------------------------+
| POSITION('o' IN 'Hello World') |
+--------------------------------+
| 5 |
+--------------------------------+
空字符串
如果子字符串为一个空串,POSITION()
函数将返回 1
。
SELECT POSITION('' IN 'Hello World');
输出:
+-------------------------------+
| POSITION('' IN 'Hello World') |
+-------------------------------+
| 1 |
+-------------------------------+
结论
在 MariaDB 中,POSITION()
是一个内置的字符串函数,它返回一个字符串中子字符串第一次出现的位置。