データ操作の複雑さを解明する: GROUP_CONCAT の逆を理解する
カンマ区切りのデータを個々の行に変換するという課題は、一般的なものです。データベース管理の障害。データの正規化として知られるこの操作には、連結された文字列をその構成部分に分割することが含まれます。 MySQL は、適切な SQL 構文を使用してこのタスクを実行する強力な方法を提供します。
本質的に、私たちが求めるのは GROUP_CONCAT の逆演算です。 GROUP_CONCAT は複数の文字列値を 1 つの連結文字列に結合しますが、逆のプロセスでは連結文字列を個々のコンポーネントに分離します。
この変換を効果的に実現するには、SUBSTRING_INDEX 関数とシーケンスを生成するサブクエリを利用できます。数字の。サブクエリは、行ごとに 4 色を超えるシナリオを処理するように変更できます。
次の SQL クエリは、このアプローチを示しています。
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
このクエリは、各色を個別の行として効率的に抽出します。元の行の順序を維持します。 GROUP_CONCAT の逆演算を理解することで、複雑な方法でデータを操作できるようになり、生データをより使いやすく構造化された形式に変換できるようになります。
以上がGROUP_CONCAT を逆にして、MySQL でカンマ区切りのデータを個々の行に分割するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。