ホームページ  >  に質問  >  本文

CSV 形式を含む varchar 列を別のテーブルに移動する

私が 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粉478188786P粉478188786426日前494

全員に返信(1)返信します

  • P粉956441054

    P粉9564410542023-09-11 14:04:03

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

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

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

    リーリー

    返事
    0
  • キャンセル返事