注册

详解MySQL的ELT()函数:返回指定索引的字符串

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”。