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

© . All rights reserved.