FIELD()

函数说明

FIELD() 函数返回第一个字符串 str 在字符串列表 (str1,str2,str3,…) 中的位置。

语法说明

  1. > FIELD(str,str1,str2,str3,...)

参数释义

参数说明
str必要参数。要在列表中查找的值。
str1,str2,str3,…必要参数。被搜索的列表中的各个元素。

返回值

如果 FIELD() 的所有参数都是 string 类型,则所有参数都作为 string 类型进行比较。如果所有参数都是数字,则将它们作为数字进行比较。如果所有参数都是 double 类型,则将它们作为 double 类型进行比较。

  • 如果在列表中找到指定的值,FIELD() 函数返回对应的位置索引。FIELD() 函数返回的索引的值从 1 开始。

  • 如果在列表中找不到指定的值,FIELD() 函数返回 0。

  • 如果要查找的值为 NULLFIELD() 函数返回 0。

示例

  • 示例 1:
  1. mysql> SELECT FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff');
  2. +-------------------------------+
  3. | field(Bb, Aa, Bb, Cc, Dd, Ff) |
  4. +-------------------------------+
  5. | 2 |
  6. +-------------------------------+
  7. 1 row in set (0.00 sec)
  8. mysql> SELECT FIELD('Gg', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff');
  9. +-------------------------------+
  10. | field(Gg, Aa, Bb, Cc, Dd, Ff) |
  11. +-------------------------------+
  12. | 0 |
  13. +-------------------------------+
  14. 1 row in set (0.00 sec)
  • 示例 2:
  1. drop table if exists t;
  2. create table t(
  3. i int,
  4. f float,
  5. d double
  6. );
  7. insert into t() values (1, 1.1, 2.2), (2, 3.3, 4.4), (0, 0, 0), (0, null, 0);
  8. mysql> select * from t;
  9. +------+------+------+
  10. | i | f | d |
  11. +------+------+------+
  12. | 1 | 1.1 | 2.2 |
  13. | 2 | 3.3 | 4.4 |
  14. | 0 | 0 | 0 |
  15. | 0 | NULL | 0 |
  16. +------+------+------+
  17. 4 rows in set (0.01 sec)
  18. mysql> select field(1, i, f, d) from t;
  19. +-------------------+
  20. | field(1, i, f, d) |
  21. +-------------------+
  22. | 1 |
  23. | 0 |
  24. | 0 |
  25. | 0 |
  26. +-------------------+
  27. 4 rows in set (0.01 sec)
  28. mysql> select field(i, f, d, 0, 1, 2) from t;
  29. +-------------------------+
  30. | field(i, f, d, 0, 1, 2) |
  31. +-------------------------+
  32. | 4 |
  33. | 5 |
  34. | 1 |
  35. | 2 |
  36. +-------------------------+
  37. 4 rows in set (0.01 sec)
  38. mysql> select field('1', f, d, 0, 1, 2) from t;
  39. +-------------------------+
  40. | field(1, f, d, 0, 1, 2) |
  41. +-------------------------+
  42. | 4 |
  43. | 4 |
  44. | 4 |
  45. | 4 |
  46. +-------------------------+
  47. 4 rows in set (0.01 sec)