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 中找不到 substrPOSITION() 函数将返回 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() 是一个内置的字符串函数,它返回一个字符串中子字符串第一次出现的位置。