In MySQL, you can use the ELT()
function to return a list item at a given position in the list.
The syntax goes like this:
ELT(N,str1,str2,str3,...)
Where N
is the position of the item you want to return, and str1,str2,str3,...
is the list.
Example
Here’s an example:
SELECT ELT(3, 'Marge', 'Homer', 'Bart') AS 'Who is at 3?';
Result:
+--------------+ | Who is at 3? | +--------------+ | Bart | +--------------+
In this case we specify that we want to return the 3rd item in the list (because the first argument is 3
) . And in this case the list is 'Marge', 'Homer', 'Bart'
, so the 3rd item is Bart
.
Numbers
Here’s an example containing numbers:
SELECT ELT(3, 9, 8, 7) AS 'The 3rd item is...';
Result:
+--------------------+ | The 3rd item is... | +--------------------+ | 7 | +--------------------+
Database Example
Here’s an example where I match up the results of a database query to a list of values:
SELECT GenreId, ELT(GenreId, 'Rock', 'Jazz', 'Country') AS Genre FROM Genres;
Result:
+---------+---------+ | GenreId | Genre | +---------+---------+ | 1 | Rock | | 2 | Jazz | | 3 | Country | | 4 | NULL | | 5 | NULL | | 6 | NULL | | 7 | NULL | | 8 | NULL | +---------+---------+
In this case there were more results than I included as parameters, therefore, those results are NULL
.
The ELT()
function is a complement to the FIELD()
function, that allows you to find the index position of a given item in a list.