如何将Group_Concat()结果拆分为不同的列?我不想在用逗号分隔的同一个单元格中显示它。
答案 0 :(得分:0)
如果您知道分隔符,则可以在subquery
中包裹SUBSTRING_INDEX两次后使用SQLFiddle。
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 3), '.', -1)
FROM (
SELECT GROUP_CONCAT(...) AS SomeColumn
FROM ...
) AS SomeTable
SUBSTRING_INDEX
从第一个获取字符串 - > Ñ强> SUBSTRING_INDEX
从首先删除字符串 - > n - 1 检查此{{3}}示例
在您的情况下,如果您知道列数,那么您的查询将类似(假设您有5个以逗号分隔的字符串):
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 1), '.', -1)
, SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 2), '.', -1)
, SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 3), '.', -1)
, SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 4), '.', -1)
, SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 5), '.', -1)
FROM (
SELECT GROUP_CONCAT(...) AS SomeColumn
FROM ...
) AS SomeTable