ホームページ >データベース >mysql チュートリアル >MySQL の GROUP_CONCAT を逆にして、連結されたデータを分離するにはどうすればよいですか?
GROUP_CONCAT の効果の逆転: 連結データの分割
MySQL では、GROUP_CONCAT 関数は特定のカラムの複数の値を 1 つの値に結合します。カンマ区切りの文字列。ただし、逆の効果、つまり連結された文字列が個々のコンポーネントに分解されることを望む場合もあります。
分割を実現するクエリ
これを実現するには、次のクエリを使用します。
SELECT id, SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', n.digit+1), ',', -1) color FROM colors INNER JOIN (SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n ON LENGTH(REPLACE(colors, ',' , '')) <= LENGTH(colors)-n.digit ORDER BY id, n.digit
詳細
サンプル データと出力
サンプル データの場合提供:
+----+----------------------+ | id | colors | +----+----------------------+ | 1 | Red,Green,Blue | | 2 | Orangered,Periwinkle | +----+----------------------+
クエリの出力は次のようになります:
+----+------------+ | id | colors | +----+------------+ | 1 | Red | | 1 | Green | | 1 | Blue | | 2 | Orangered | | 2 | Periwinkle | +----+------------+
以上がMySQL の GROUP_CONCAT を逆にして、連結されたデータを分離するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。