MySQL의 ELT() 함수는 인수로 전달된 인덱스 번호가 문자열 목록에 포함된 문자열의 개수보다 클 경우 NULL을 반환합니다. 참고로 ELT(N, str1, str2, ...) 형태로 사용되며, 인덱스는 1부터 시작하고 지정된 위치에 해당하는 문자열을 반환하는 함수입니다. 아래 예제를 통해 이를 확인해 보겠습니다.
예제
mysql> Select ELT(6,'Ram','is','a','good','boy') As Result; +--------+ | Result | +--------+ | NULL | +--------+ 1 row in set (0.00 sec)
위 예제에서 인덱스 번호는 6으로 지정되었지만, 문자열 목록에는 'Ram', 'is', 'a', 'good', 'boy' 단 5개의 문자열만 존재합니다. 즉, 요청한 인덱스 위치에 해당하는 문자열이 없기 때문에 MySQL은 오류를 발생시키지 않고 NULL을 반환합니다.
이러한 동작은 유효 범위를 벗어난 인덱스(1보다 작거나 문자열 개수보다 큰 값)가 입력될 때 항상 적용됩니다. 따라서 실무에서 ELT() 함수를 사용할 때는 반환값이 NULL일 가능성을 고려하여 필요하다면 IFNULL()이나 COALESCE() 같은 함수를 함께 활용해 기본값을 처리해 주는 것이 좋습니다.