MariaDB FIND_IN_SET() 函数返回字符串在逗号分隔字符串列表中的位置。在特殊情况下,它返回以下内容:
- 如果在 string_list 中找不到 string,则函数返回 0。
- 如果string为NULL,则函数返回NULL。
- 如果string_list为空字符串,则函数返回0。
- 如果string_list为NULL,则函数返回NULL。
语法
FIND_IN_SET(string, string_list)
参数
string | 必填。 指定要查找的字符串。 |
string_list | 必填。 指定需要搜索的以逗号分隔的字符串值列表。 |
返回值
返回string_list 中的 string位置。
示例 1:
下面的示例显示了 FIND_IN_SET()函数的用法 。
SELECT FIND_IN_SET('b', 'a,b,c,d');
Result: 2
SELECT FIND_IN_SET('b', 'A,B,C,D');
Result: 2
SELECT FIND_IN_SET('B', 'a,b,c,d');
Result: 2
SELECT FIND_IN_SET(3, '1,2,3,4');
Result: 3
SELECT FIND_IN_SET('z', 'a,b,c,d');
Result: 0
SELECT FIND_IN_SET('a', '');
Result: 0
SELECT FIND_IN_SET('a', NULL);
Result: NULL
SELECT FIND_IN_SET(NULL, 'a,b,c,d');
Result: NULL
示例 2:
考虑一个名为 Employee 的数据库表,其中包含以下记录:
EmpID | Name | Departments |
---|---|---|
1 | John | HR,Admin |
2 | Marry | IT,Finance |
3 | Jo | Finance,Marketing |
4 | Kim | 'Marketing,Sales |
5 | Ramesh | IT,Finance,Marketing |
6 | Huang | IT,Marketing,Sales |
下面给出的语句可用于查找"财务"部门的员工姓名。
SELECT *, IF(FIND_IN_SET('Finance', Departments), 'YES', 'NO') AS Result
FROM Employee;
这将产生如下所示的结果:
EmpID | Name | Departments | Result |
---|---|---|---|
1 | John | HR,Admin | NO |
2 | Marry | IT,Finance | YES |
3 | Jo | Finance,Marketing | YES |
4 | Kim | Marketing,Sales | NO |
5 | Ramesh | IT,Finance,Marketing | YES |
6 | Huang | IT,Marketing,Sales | NO |