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的数据库表 包含以下记录:
EmpID | Name | Department1 | Department2 | Department3 |
---|---|---|---|---|
1 | John | HR | Admin | Treasury |
2 | Marry | IT | Finance | |
3 | Jo | Finance | Marketing | |
4 | Kim | Marketing | Sales | |
5 | Ramesh | IT | Finance | Marketing |
6 | Huang | IT | Marketing | Sales |
下面给出的语句可用于查找"财务"部门的员工姓名。
SELECT *,
IF(FIELD('Finance', Department1, Department2, Department3), 'YES', 'NO') AS Result
FROM Employee;
这将产生如下所示的结果:
EmpID | Name | Department1 | Department2 | Department3 | Result |
---|---|---|---|---|---|
1 | John | HR | Admin | Treasury | 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 |