可以使用下面的 SQL 语句来实现:
SELECT
SUBSTRING_INDEX(column_name, ',', 1) AS value_1,
CASE
WHEN LENGTH(column_name) - LENGTH(REPLACE(column_name, ',', '')) >= 1
THEN SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, ',', 2), ',', -1)
ELSE ''
END AS value_2,
CASE
WHEN LENGTH(column_name) - LENGTH(REPLACE(column_name, ',', '')) >= 2
THEN SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, ',', 3), ',', -1)
ELSE ''
END AS value_3
FROM table_name;
其中,column_name
是要分割的列名,table_name
是包含该列的表名。
上述 SQL 语句会将 column_name
列中的值按照逗号进行分割,并且根据最多的逗号个数来判断要分成几个部分。少于最多个数的部分则用空字符串表示。例如,如果 column_name
列中的值为 value1,value2
,则上述 SQL 语句会将其分割成 value1
和 value2
两部分,并且第三部分为空字符串。