Tidak ada fungsi asli untuk ini. Anda dapat menggunakan dua fungsi SUBSTRING_INDEX. Dan Anda perlu memeriksa apakah item indeks tertentu itu ada:
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)mengembalikan substring dari string@stringsebelum@nkemunculan@delimiter.SUBSTRING_INDEX( ... , @delimiter, -1)mengembalikan semuanya ke kanan pembatas akhir- Anda perlu memeriksa apakah pembatas
@nada. Kita dapat mengurangi panjang string dengan pembatas, dan string dengan pembatas dihilangkan - menggunakanREPLACE(@string, @delimiter, '')- dan lihat apakah lebih besar dari@n*CHAR_LENGTH(@delimiter)-1