0
Group_Concat()の結果を別の列に分割するにはどうすればよいですか?私はコンマで区切って同じセルに表示したくありません。MySQLの出力を分割するGroup_Concat()
Group_Concat()の結果を別の列に分割するにはどうすればよいですか?私はコンマで区切って同じセルに表示したくありません。MySQLの出力を分割するGroup_Concat()
subquery
で区切り文字を使用する場合は、SUBSTRING_INDEXを二重に折り返して使用できます。
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SomeColumn, '.', 3), '.', -1)
FROM (
SELECT GROUP_CONCAT(...) AS SomeColumn
FROM ...
) AS SomeTable
SUBSTRING_INDEX
最初から文字列を取得 - > NSUBSTRING_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
は、カンマ区切りの文字列を爆発命名、あなたは文字通り示唆何をして、仕事の束でありますMySQLで。本当にあなたが探しているのは、CSVコンテンツを保持する列を作成するピボットクエリです。あなたが念頭に置いていることをよりよく理解できるようにサンプルテーブルを表示できますか? –