2016-06-23 45 views
0

如何將Group_Concat()結果分成不同的列?我不想在用逗號分隔的同一個單元格中顯示它。分割MySQL的輸出Group_Concat()

+1

這樣做有什麼建議從字面上看,命名爆炸逗號分隔的字符串,是一堆工作在MySQL中。實際上,您要查找的是數據透視查詢,您可以在其中創建列以容納CSV內容。你能向我們展示一張樣品桌,以便我們更好地瞭解你的想法? –

回答

0

如果知道分隔符,您可以使用SUBSTRING_INDEX兩次後將其包裝在subquery中。

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

檢查這個SQLFiddle示例

就你而言,如果你知道列,您的查詢看起來是這樣的(假設你用逗號隔開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