MySQL ELT() 函数
MySQL ELT() 函数用于根据索引号从一组字符串中检索特定的字符串值。
它接受一个数值(例如 I)和一个字符串列表作为参数,并返回给定列表中第 I 个元素。数值 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 | Industry Hit |
Pushpa | 4 | Blockbuster |
Bahubali | 5 | Industry Hit |
Tubelight | 1 | Disaster |
Sitaramam | 3 | Hit |
Bharat | 2 | Flop |