MySQL中的ELT()函数用于从指定的字符串列表中返回索引位置所对应的字符串。 如果索引值为0 或者大于字符串列表行数,则函数返回NULL。 ELT函数的语法如下:
ELT(index, str1, str2, ..., strN)
参数:
index
: 必需。表示要返回的字符串从输入列表的第几个字符串开始。索引值以1开始。str1, str2, ..., strN
: 可选。 表示输入列表中的一个或多个字符串。
实例1:
考虑以下表格为实例:
ID | Name | Country |
---|---|---|
1 | John | USA |
2 | Lisa | Canada |
3 | Tom | UK |
假设我们想要将每个国家的名称更改为该国家的数字代码。美国为1,加拿大为2,英国为3。我们可以使用以下SELECT语句:
SELECT Name, ELT(Country, 'USA', 'Canada', 'UK') AS 'Country Code' FROM Persons;
执行此查询语句后,将生成以下结果集:
Name | Country Code |
---|---|
John | 1 |
Lisa | 2 |
Tom | 3 |
注释: 表中的“Country”列包含数字1、2或3,表示每个人的国籍。ELT函数使用这些数字作为索引并将其转换为对应的国家。
实例2:
假设我们有一个字符串列表,并且希望以不同的方式组合这些字符串。以下查询将输出X和Y之间的字符串,然后在字符串列表中找到对应的索引值,并将它们连接起来:
SELECT CONCAT(ELT(2, 'apple', 'banana', 'cherry', 'lemon', 'pineapple'), ELT(4, 'red', 'green', 'blue', 'yellow'));
注意:第一个ELT函数将返回字符串“banana”,因为它是在列表中的第2个位置上的字符串。 第二个ELT函数将返回字符串“yellow”,因为它是在列表中的第4个位置上的字符串。 CONCAT函数将这两个字符串连接起来,最终输出“bananayellow”。