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 |