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 サイトの他の関連記事を参照してください。