В MySQL можете да използвате ELT()
функция за връщане на списъчен елемент на дадена позиция в списъка.
Синтаксисът е така:
ELT(N,str1,str2,str3,...)
Където N
е позицията на елемента, който искате да върнете, и str1,str2,str3,...
е списъкът.
Пример
Ето един пример:
SELECT ELT(3, 'Marge', 'Homer', 'Bart') AS 'Who is at 3?';
Резултат:
+--------------+ | Who is at 3? | +--------------+ | Bart | +--------------+
В този случай указваме, че искаме да върнем 3-тия елемент в списъка (тъй като първият аргумент е 3
) . И в този случай списъкът е 'Marge', 'Homer', 'Bart'
, така че третият елемент е Bart
.
Числа
Ето пример, съдържащ числа:
SELECT ELT(3, 9, 8, 7) AS 'The 3rd item is...';
Резултат:
+--------------------+ | The 3rd item is... | +--------------------+ | 7 | +--------------------+
Пример за база данни
Ето пример, в който съпоставям резултатите от заявка за база данни със списък със стойности:
SELECT GenreId, ELT(GenreId, 'Rock', 'Jazz', 'Country') AS Genre FROM Genres;
Резултат:
+---------+---------+ | GenreId | Genre | +---------+---------+ | 1 | Rock | | 2 | Jazz | | 3 | Country | | 4 | NULL | | 5 | NULL | | 6 | NULL | | 7 | NULL | | 8 | NULL | +---------+---------+
В този случай имаше повече резултати, отколкото включих като параметри, следователно тези резултати са NULL
.
ELT()
функцията е допълнение към FIELD()
функция, която ви позволява да намерите позицията на индекса на даден елемент в списък.