ホームページ > データベース > mysql チュートリアル > MySQL でカンマ区切りのリストを複数の行に効率的に分割するにはどうすればよいですか?

MySQL でカンマ区切りのリストを複数の行に効率的に分割するにはどうすればよいですか?

DDD
リリース: 2025-01-06 11:59:48
オリジナル
448 人が閲覧しました

How Can I Efficiently Split Comma-Separated Lists into Multiple Rows in MySQL?

MySQL: カンマ区切りのリストを複数の行に分割

正規化されていないテーブルは、カンマとして保存されている外部キーを処理するときに問題が発生します。区切られたリスト。 MySQL では、テーブルを返す関数を使用してこの問題を直接解決することはできません。ただし、回避策は、テクニックを組み合わせることによって実現できます。

結合操作の使用:

カンマ区切りリストに結合するには、 を使用します。 FIND_IN_SET() 関数を使用して、一方の値がもう一方の値に存在するかどうかを判断します。これにより、リスト内の特定の要素に基づいてテーブル間の結合を作成できます。例:

SELECT part_id,
       vechicle_id
FROM vehicles
JOIN load_plan_configs ON FIND_IN_SET(vechicle_id, load_plan_configs.vehicle_ids)
WHERE load_plan_configs.id = 42;
ログイン後にコピー

INSERT を使用した新しいテーブルの作成:

もう 1 つの方法は、分割値を保存する新しいテーブルを作成することです。カンマ区切りの値を反復処理して新しいテーブルに挿入するクエリを使用できます。例:

INSERT INTO new_table (part_id, material_id)
SELECT part_id,
       SUBSTRING(material, INSTR(material, ',') + 1) AS material_id
FROM table_with_comma_separated_values;
ログイン後にコピー

このクエリは、カンマ区切りリスト内の各part_id に各material_id の個別のエントリを持つ分割値を含む新しいテーブルを作成します。

これらの手法を利用することにより、を使用すると、カンマ区切りのリストを MySQL の複数の行に効果的に分割できるため、より構造化されアクセスしやすい方法でデータを操作できるようになります。

以上がMySQL でカンマ区切りのリストを複数の行に効率的に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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