No hay una función nativa para esto. Puede utilizar dos funciones SUBSTRING_INDEX. Y debe verificar si ese elemento de índice específico existe:
SET @string:='1,2,3,4,5';
SET @delimiter:=',';
SET @n:=6;
SELECT
CASE WHEN
CHAR_LENGTH(@string)-CHAR_LENGTH(REPLACE(@string, @delimiter, ''))>=
@n*CHAR_LENGTH(@delimiter)-1
THEN
SUBSTRING_INDEX(SUBSTRING_INDEX(@string, @delimiter, @n), @delimiter, -1)
END;
SUBSTRING_INDEX(@string, @delimiter, @n)devuelve la subcadena de la cadena@stringantes de@nocurrencias de@delimiter.SUBSTRING_INDEX( ... , @delimiter, -1)devuelve todo a la derecha del delimitador final- debe verificar si el delimitador
@nexiste Podemos restar la longitud de la cadena con el delimitador y la cadena con el delimitador eliminado, usandoREPLACE(@string, @delimiter, '')- y ver si es mayor que@n*CHAR_LENGTH(@delimiter)-1