2016-06-23 21 views
0

Group_Concat()の結果を別の列に分割するにはどうすればよいですか?私はコンマで区切って同じセルに表示したくありません。MySQLの出力を分割するGroup_Concat()

+1

は、カンマ区切りの文字列を爆発命名、あなたは文字通り示唆何をして、仕事の束でありますMySQLで。本当にあなたが探しているのは、CSVコンテンツを保持する列を作成するピボットクエリです。あなたが念頭に置いていることをよりよく理解できるようにサンプルテーブルを表示できますか? –

答えて

0

subqueryで区切り文字を使用する場合は、SUBSTRING_INDEXを二重に折り返して使用できます。

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 3), '.', -1) 
    FROM (
     SELECT GROUP_CONCAT(...) AS SomeColumn 
      FROM ... 
    ) AS SomeTable 
  1. SUBSTRING_INDEX最初から文字列を取得 - > N
  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