MySQL FIELD() 函数



MySQL 的 FIELD() 函数用于在一个字符串列表中查找特定字符串的索引。此函数接受一个字符串作为第一个参数,以及后续参数作为字符串值的列表。

如果在列表中找不到指定的字符串,则此函数返回 0。即使您将 NULL 作为第一个参数传递,该函数也会返回 0。

语法

以下是 MySQL FIELD() 函数的语法:

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

参数

此函数采用搜索字符串和字符串列表作为参数。

返回值

此函数返回搜索字符串在列表中第一次出现的索引,如果未找到则返回 0。

示例

在下面的示例中,我们使用 FIELD() 函数在字符串列表中查找 'JavaFX' 的位置:

SELECT FIELD('JavaFX', 'Java', 'JavaFX', 'OpenCV', 'WebGL');

以上代码的输出如下:

FIELD('JavaFX', 'Java', 'JavaFX', 'OpenCV', 'WebGL')
2

示例

如果我们搜索列表中不存在的字符串,则 field() 函数返回 0:

SELECT FIELD('unknown', 'Java', 'JavaFX', 'OpenCV', 'WebGL');

以上代码的输出如下所示:

FIELD('unknown', 'Java', 'JavaFX', 'OpenCV', 'WebGL')
0

示例

如果我们在列表中搜索 NULL 值,则 FIELD() 函数返回 0:

SELECT FIELD(NULL, 'Apple', 'Orange', 'Mango', 'Banana');

获得的输出如下:

FIELD(NULL, 'Apple', 'Orange', 'Mango', 'Banana')
0

示例

您还可以将数字列表作为参数传递给此函数并搜索所需的值:

SELECT FIELD(25, 225, 669, 557, 25, 66);

产生的结果如下:

FIELD(25, 225, 669, 557, 25, 66)
4

示例

让我们创建一个名为 "FRUITS" 的表,并使用 CREATE 和 INSERT 语句向其中插入记录,如下所示:

CREATE TABLE FRUITS (
   id int AUTO_INCREMENT,
   name varchar(50) NOT NULL,
   color varchar(50) NOT NULL,
   PRIMARY KEY (id)
);

现在,让我们使用 INSERT 语句向其中插入记录:

INSERT INTO FRUITS (name, color) VALUES 
('banana', 'yellow'),
('apple', 'red'),
('orange', 'orange'),
('kiwi', 'brown'),
('grape', 'purple'),
('watermelon', 'green');

获得的 FRUITS 表如下:

id name color
1 banana yellow
2 apple red
3 orange orange
4 kiwi brown
5 grape purple
6 watermelon green

在这里,我们使用 FIELD() 函数在可能的颜色列表中查找每种水果颜色的位置:

SELECT name, color, FIELD(color, 'red', 'yellow', 'green', 'purple') AS color_ranking 
FROM FRUITS;

执行上述代码后,我们得到以下输出:

name color color_ranking
banana yellow 2
apple red 1
orange orange 0
kiwi brown 0
grape purple 4
watermelon green 3
mysql-field-function.htm
广告