ホームページ > データベース > mysql チュートリアル > MySQL でカンマ区切り値を個々の行に変換するにはどうすればよいですか?

MySQL でカンマ区切り値を個々の行に変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-14 08:30:42
オリジナル
608 人が閲覧しました

How to Convert Comma-Separated Values into Individual Rows in MySQL?

MySQL でカンマ区切り値を個々の行に変換する

このガイドでは、MySQL 列内のカンマ区切り値を個々の行に変換する方法を説明します。 次のようなカンマ区切りのデータを含む列を持つテーブルがあるとします。

<code>somethingA,somethingB,somethingC
somethingElseA, somethingElseB</code>
ログイン後にコピー

目的は、このデータを次のように再構成することです。

<code>somethingA
somethingB
somethingC
somethingElseA
somethingElseB</code>
ログイン後にコピー

この SQL クエリは次の変換を実現します:

<code class="language-sql">SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t.values, ',', n.n), ',', -1) value
FROM table1 t CROSS JOIN 
(
   SELECT a.N + b.N * 10 + 1 n
     FROM 
    (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
   ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
    ORDER BY n
) n
WHERE n.n <= LENGTH(t.values) - LENGTH(REPLACE(t.values, ',', '')) + 1;</code>
ログイン後にコピー

説明:

このクエリは、動的に生成された数値テーブル (サブクエリ) と SUBSTRING_INDEX() 関数を巧みに使用しています。 SUBSTRING_INDEX() は、区切り文字に基づいて部分文字列を抽出します。数値テーブルは、各カンマ区切り値のインデックスを提供します。 WHERE 句により、クエリは各行のカンマ区切り要素の実際の数までの値のみを処理するようになります。

キーポイント:

  • SUBSTRING_INDEX(string, delimiter, count): この機能は重要です。 string は入力、delimiter はカンマ、count は使用する区切り文字を指定します。 count-1 は、最後に出現した区切り文字の 以降 をすべて取得します。
  • サブクエリは一時的な数値テーブルを作成します。 このタイプの操作を頻繁に実行する場合は、これを既存の数値テーブルに置き換えてパフォーマンスを向上させることができます。
  • WHERE 句は、元の文字列内のカンマの数に基づいて返される行数を動的に調整し、エラーを防ぎます。

この方法では、カンマ区切りの値が効果的に個々の行に分割され、よりクリーンで管理しやすいデータセットが得られます。

以上がMySQL でカンマ区切り値を個々の行に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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