私が 15 年前に作成したデータベースは設計が不十分でした。カンマ区切りの文字列「5,8,13」を含む varchar 列があります。文字列にはスペースや末尾のカンマは含まれませんが、値の数は可変です。私がやりたいのは、新しいテーブルを作成し、行のIDとペアになったこれらの値を新しいテーブルに移動することです。上記の値が ID 7 の行からのものであると仮定すると、結果は 3 行になります:
リーリー既存のデータセットを表示します。この列の値の範囲は 1 ~ 6 です。文字列分割関数の使用方法を示すスレッドを見つけました: 値を 1 つのフィールドから 2 つに分割する
しかし、率直に言って、これを 1 つの挿入操作に変換する方法がわかりません。これが単純なタスクではない場合は、多くの挿入ステートメントが含まれる場合でも、PHP スクリプトを作成します。
さらに説明すると、ここに 2 つの表があります:
リーリーTable_A は既存のデータで、プラットフォーム列のデータはカンマ区切りの数値「3,45」または「56,4」です。これらの番号は、別のテーブルのインデックスを指します。はい、それが悪い設計であることはわかっていますが、幸いなことにそれ以来、より良い方法を学びました。 Table_A のプラットフォーム文字列から数値を解析し、Table_A の行 ID とともに Table_B に挿入したいと考えています。
これは、この機能を実現するための小さなクエリです。 CSV から 6 つの値を分割するだけです。 行にさらに多くの値がある場合は、UNION ALL
を変更する必要があります。結果は単一テーブルに保存されます。
リーリー