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
廣告