MariaDB FIND_IN_SET() 函数使用指南

在 MariaDB 中,FIND_IN_SET() 函数返回给定的值在指定字符串列表中出现的索引位置。

FIND_IN_SET() 函数与 FIELD() 函数类似,不同的是 FIELD() 中的列表是由多个参数组成的。

MariaDB FIND_IN_SET() 语法

这里是 MariaDB FIND_IN_SET() 函数的语法:

FIND_IN_SET(value, string_list)

参数说明

value
必须的。这是要搜索的字符串。
string_list
必须的。这是一个使用逗号分隔的字符串列表。

如果您没有提供参数或者提供了 1 个参数, MariaDB 将报告错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function ‘FIND_IN_SET’。

返回值

如果在 string_list 找到 valueFIND_IN_SET() 函数将返回第一次匹配的位置索引。

如果在 string_list 中找不到 valueFIND_IN_SET() 函数将返回 0

如果 valueNULLFIND_IN_SET() 函数将返回 NULL

如果 string_list 为空字符串,则 FIND_IN_SET() 函数将返回 0

如果 string_listNULL,则 FIND_IN_SET() 函数将返回 NULL

MariaDB FIND_IN_SET() 示例

基本示例

如果你需要知道 'A' 在列表 A,B,C 中的位置,可以使用如下语句:

SELECT FIND_IN_SET('A', 'A,B,C');

输出:

+---------------------------+
| FIND_IN_SET('A', 'A,B,C') |
+---------------------------+
|                         1 |
+---------------------------+

查找数值

您也可以查找一个数值,如下:

SELECT FIND_IN_SET(1, '3,2,1');

输出:

+-------------------------+
| FIND_IN_SET(1, '3,2,1') |
+-------------------------+
|                       3 |
+-------------------------+

不区分大小写

SELECT FIND_IN_SET('a', 'A,B,C');

输出:

+---------------------------+
| FIND_IN_SET('a', 'A,B,C') |
+---------------------------+
|                         1 |
+---------------------------+

无匹配

如果没有匹配项, FIND_IN_SET() 函数将返回 0

SELECT FIND_IN_SET('D', 'A,B,C');

输出:

+---------------------------+
| FIND_IN_SET('D', 'A,B,C') |
+---------------------------+
|                         0 |
+---------------------------+

结论

在 MariaDB 中,FIND_IN_SET() 函数返回给定的值在指定字符串列表中第一次出现的索引位置。