拆分MySQL Group_Concat()的输出

时间:2016-06-23 06:10:40

标签: mysql

如何将Group_Concat()结果拆分为不同的列?我不想在用逗号分隔的同一个单元格中显示它。

1 个答案:

答案 0 :(得分:0)

如果您知道分隔符,则可以在subquery中包裹SUBSTRING_INDEX两次后使用SQLFiddle

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 3), '.', -1)
    FROM (
        SELECT GROUP_CONCAT(...) AS SomeColumn
            FROM ...
    ) AS SomeTable
  1. 第一个SUBSTRING_INDEX第一个获取字符串 - > Ñ
  2. 第二个SUBSTRING_INDEX首先删除字符串 - > n - 1
  3. 检查此{{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