ホームページ > データベース > mysql チュートリアル > GROUP_CONCAT を逆にして、MySQL でカンマ区切りのデータを個々の行に分割するにはどうすればよいでしょうか?

GROUP_CONCAT を逆にして、MySQL でカンマ区切りのデータを個々の行に分割するにはどうすればよいでしょうか?

Linda Hamilton
リリース: 2024-12-10 21:12:11
オリジナル
250 人が閲覧しました

How Can We Reverse GROUP_CONCAT to Separate Comma-Separated Data into Individual Rows in MySQL?

データ操作の複雑さを解明する: 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート