CSV 形式を含む varchar 列を別のテーブルに移動する
P粉478188786
P粉478188786 2023-09-10 19:59:25
0
1
495

私が 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 に挿入したいと考えています。

P粉478188786
P粉478188786

全員に返信(1)
P粉956441054

これは、この機能を実現するための小さなクエリです。 CSV から 6 つの値を分割するだけです。 行にさらに多くの値がある場合は、UNION ALL

を変更する必要があります。

結果は単一テーブルに保存されます。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート