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 找到 value,FIND_IN_SET() 函数将返回第一次匹配的位置索引。
如果在 string_list 中找不到 value, FIND_IN_SET() 函数将返回 0。
如果 value 为 NULL,FIND_IN_SET() 函数将返回 NULL。
如果 string_list 为空字符串,则 FIND_IN_SET() 函数将返回 0。
如果 string_list 为 NULL,则 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() 函数返回给定的值在指定字符串列表中第一次出现的索引位置。