Anda dapat menggunakan SUBSTRING_INDEX dua kali, yang kedua dengan parameter -1:
SELECT
'aaaaa, bbbbb, ccccc',
SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 1) AS column_one,
SUBSTRING_INDEX(SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 2), ',', -1) AS column_two,
SUBSTRING_INDEX(SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 3), ',', -1) AS column_three
Jika parameternya negatif, semua yang ada di sebelah kanan pembatas akhir (dihitung dari kanan) dikembalikan. Mis.
SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 2)
akan mengembalikanaaaaa, bbbbb
SUBSTRING_INDEX(
aaaaa, bbbbb, ',', -1)
kemudian akan mengembalikanbbbbb
Anda juga mungkin ingin menggunakan ', ' sebagai pembatas, atau TRIM hasilnya.
Silakan lihat biola di sini .
Sunting
Jika Anda ingin mempertimbangkan string yang mungkin memiliki kurang dari tiga nilai, Anda dapat menggunakan sesuatu seperti ini:
SELECT
s,
SUBSTRING_INDEX(s, ',', 1) AS column_one,
CASE WHEN LENGTH(s)-LENGTH(Replace(s, ',', ''))>0
THEN SUBSTRING_INDEX(SUBSTRING_INDEX(s, ',', 2), ',', -1)
ELSE NULL END AS column_two,
CASE WHEN LENGTH(s)-LENGTH(Replace(s, ',', ''))>1
THEN SUBSTRING_INDEX(SUBSTRING_INDEX(s, ',', 3), ',', -1)
ELSE NULL END AS column_three
FROM
strings
Silakan lihat biola di sini .