I MySQL kan du använda ELT()
funktion för att returnera ett listobjekt på en given plats i listan.
Syntaxen ser ut så här:
ELT(N,str1,str2,str3,...)
Där N
är positionen för varan du vill returnera, och str1,str2,str3,...
är listan.
Exempel
Här är ett exempel:
SELECT ELT(3, 'Marge', 'Homer', 'Bart') AS 'Who is at 3?';
Resultat:
+--------------+ | Who is at 3? | +--------------+ | Bart | +--------------+
I det här fallet anger vi att vi vill returnera det tredje objektet i listan (eftersom det första argumentet är 3
) . Och i det här fallet är listan 'Marge', 'Homer', 'Bart'
, så det tredje objektet är Bart
.
Siffror
Här är ett exempel som innehåller siffror:
SELECT ELT(3, 9, 8, 7) AS 'The 3rd item is...';
Resultat:
+--------------------+ | The 3rd item is... | +--------------------+ | 7 | +--------------------+
Databasexempel
Här är ett exempel där jag matchar resultaten av en databasfråga med en lista med värden:
SELECT GenreId, ELT(GenreId, 'Rock', 'Jazz', 'Country') AS Genre FROM Genres;
Resultat:
+---------+---------+ | GenreId | Genre | +---------+---------+ | 1 | Rock | | 2 | Jazz | | 3 | Country | | 4 | NULL | | 5 | NULL | | 6 | NULL | | 7 | NULL | | 8 | NULL | +---------+---------+
I det här fallet fanns det fler resultat än vad jag inkluderade som parametrar, därför är dessa resultat NULL
.
ELT()
funktionen är ett komplement till FIELD()
funktion, som låter dig hitta indexpositionen för ett givet objekt i en lista.