您可以使用SUBSTRING_INDEX两次,第二次使用 -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
如果参数为负数,则返回最终分隔符右侧(从右侧开始计数)的所有内容。例如。
SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 2)
将返回aaaaa, bbbbb
SUBSTRING_INDEX(
aaaaa,然后 bbbbb, ',', -1)
将返回bbbbb
您可能还想使用 ', ' 作为分隔符,或TRIM结果。
请在此处查看小提琴。
编辑
如果您想考虑可能具有少于三个值的字符串,您可以使用如下内容:
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
请在此处查看小提琴。