MariaDB 函数

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 的数据库表,其中包含以下记录:

EmpIDNameDepartments
1JohnHR,Admin
2MarryIT,Finance
3JoFinance,Marketing
4Kim'Marketing,Sales
5RameshIT,Finance,Marketing
6HuangIT,Marketing,Sales

下面给出的语句可用于查找"财务"部门的员工姓名。

SELECT *, IF(FIND_IN_SET('Finance', Departments), 'YES', 'NO') AS Result 
FROM Employee; 

这将产生如下所示的结果:

EmpIDNameDepartmentsResult
1JohnHR,AdminNO
2MarryIT,FinanceYES
3JoFinance,MarketingYES
4KimMarketing,SalesNO
5RameshIT,Finance,MarketingYES
6HuangIT,Marketing,SalesNO