MySQL ELT() 函式



MySQL 的ELT() 函式用於根據索引號從一組字串中檢索特定的字串值。

它接受一個數值(例如I)和一個字串列表作為引數,並返回給定列表的第Ith個元素。數值I應該小於傳遞的引數數量,並且應該大於 0,否則,此函式返回NULL

語法

以下是 MySQL ELT() 函式的語法:

ELT(N,str1,str2,str3,...);

引數

此函式將索引和字串值列表作為引數。

返回值

此函式返回給定列表中指定索引處的字串。

示例

在此示例中,我們使用 ELT() 函式從字串列表中檢索第 3 個元素:

SELECT ELT( 3, 'Java', 'JavaFX', 'OpenCV', 'WebGL');

以下是上述程式碼的輸出:

ELT( 3, 'Java', 'JavaFX', 'OpenCV', 'WebGL')
OpenCV

示例

在這裡,我們提供索引作為數值“4”(以字串形式)並從字串列表中檢索相應的元素:

SELECT ELT( '4', 'test1', 'test2', 'test3', 'test4');

上述程式碼的輸出如下所示:

ELT( '4', 'test1', 'test2', 'test3', 'test4')
test4

示例

如果將小於或等於 0 的數值作為 ELT() 函式的第一個引數傳遞,則它將返回 NULL:

SELECT ELT( -9, 'Java', 'JavaFX', 'OpenCV', 'WebGL');

獲得的輸出如下所示:

ELT( -9, 'Java', 'JavaFX', 'OpenCV', 'WebGL')
NULL

示例

當傳遞的數值大於傳遞給 ELT() 函式的引數數量時,它將返回 NULL:

SELECT ELT( 9, 'Java', 'JavaFX', 'OpenCV', 'WebGL', NULL);

產生的結果如下:

ELT( 9, 'Java', 'JavaFX', 'OpenCV', 'WebGL', NULL)
NULL

示例

如果將 NULL 作為第一個引數傳遞,則函式將返回 NULL:

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

我們得到以下輸出:

ELT( NULL, 'Apple', 'Orange', 'Mango', 'Banana')
NULL

示例

傳遞給此函式的字串列表也可能包含 NULL 值或空字串:

SELECT ELT( 3, 'Java', 'JavaFX', 'OpenCV', 'WebGL', NULL);

獲得的輸出如下所示:

ELT( 3, 'Java', 'JavaFX', 'OpenCV', 'WebGL', NULL)
OpenCV

示例

讓我們建立一個名為“FILM_RATINGS”的表,並使用 CREATE 和 INSERT 語句向其中插入記錄,如下所示:

CREATE TABLE FILM_RATINGS(
   MOVIE varchar(50),
   RATING int
);

現在,讓我們使用 INSERT 語句向其中插入記錄:

INSERT INTO FILM_RATINGS VALUES 
('RRR', 5),
('Pushpa', 4),
('Bahubali', 5),
('Tubelight', 1),
('Sitaramam', 3),
('Bharat', 2);

獲得的 FILM_RATINGS 表如下所示:

MOVIE RATING
RRR 5
Pushpa 4
Bahubali 5
Tubelight 1
Sitaramam 3
Bharat 2

現在,讓我們使用以下查詢向 FILM_RATINGS 表中新增一個名為 OVERALL_REVIEW 的列:

ALTER TABLE FILM_RATINGS ADD COLUMN OVERALL_REVIEW VARCHAR(40);

以下查詢使用 MySQL ELT() 函式根據“RATING”列的值更新“FILM_RATINGS”表中的“OVERALL_REVIEW”列:

UPDATE FILM_RATINGS 
SET OVERALL_REVIEW = ELT(RATING, 'Disaster', 'Flop', 'Hit', 'Blockbuster', 'Industry Hit');

以下是生成的 FILM_RATINGS 表:

MOVIE RATING OVERALL_REVIEW
RRR 5 行業熱映
Pushpa 4 票房大賣
Bahubali 5 行業熱映
Tubelight 1 災難
Sitaramam 3 熱映
Bharat 2 撲街
mysql-elt-function.htm
廣告