MariaDB 函数

MariaDB FIELD() 函数返回值列表中值的索引位置(val1, val2, val3, ...)。在特殊情况下,它返回以下内容:

  • 如果在值列表中找不到值(val1, val2, val3, ...) ,函数返回 0。
  • 如果 value 为 NULL,函数返回 0。
  • 如果该函数使用的所有参数都是字符串值,查找将作为字符串值执行。
  • 如果此函数使用的所有参数都是数值,则查找将作为数值执行。

语法

FIELD(value, val1, val2, val3, ... ) 

参数

value必填。 指定要在列表中查找的值。
val1, val2, val3, ...必填。 指定需要搜索的值列表。

返回值

返回值列表中值的索引位置(val1, val2, val3, ...)

示例 1:

示例下面显示了FIELD()函数的用法。

SELECT FIELD('b', 'a', 'b', 'c', 'd');
Result: 2

SELECT FIELD('b', 'A', 'B', 'C', 'D');
Result: 2

SELECT FIELD('B', 'a', 'b', 'c', 'd');
Result: 2

SELECT FIELD(3, 1, 2, 3, 4);
Result: 3

SELECT FIELD('z', 'a', 'b', 'c', 'd');
Result: 0

SELECT FIELD('a', '');
Result: 0

SELECT FIELD('a', NULL);
Result: 0

SELECT FIELD('C', 'A', NULL, 'C', 'D');
Result: 3

SELECT FIELD(NULL, 'A', 'B', 'C', 'D');
Result: 0

SELECT FIELD(NULL, 'A', NULL, 'C', 'D');
Result: 0 

示例2:

考虑一个名为Employee的数据库表 包含以下记录:

EmpIDNameDepartment1Department2Department3
1JohnHRAdminTreasury
2MarryITFinance
3JoFinanceMarketing
4KimMarketingSales
5RameshITFinanceMarketing
6HuangITMarketingSales

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

SELECT *, 
IF(FIELD('Finance', Department1, Department2, Department3), 'YES', 'NO') AS Result 
FROM Employee; 

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

EmpIDNameDepartment1Department2Department3Result
1JohnHRAdminTreasuryNO
2MarryITFinanceYES
3JoFinanceMarketingYES
4KimMarketingSalesNO
5RameshITFinanceMarketingYES
6HuangITMarketingSalesNO