MySQL テーブルへの CSV インポート中に列をスキップする
CSV ファイルから MySQL テーブルへのデータのインポートは一般的なタスクです。ただし、特定の列をスキップする必要がある状況が発生する場合があります。この記事では、不要な列をスキップし、残りのデータを正しくマップするための解決策を提供します。
シナリオ
11 列の CSV ファイルと 9 列の MySQL テーブルを考えてみましょう。 。目標は、CSV ファイルの列 1 ~ 8 を MySQL テーブルの最初の 8 列に直接マッピングすることです。 CSV ファイルの列 9 と 10 はスキップする必要があり、列 11 は MySQL テーブルの列 9 にマッピングする必要があります。
元のコマンド
初期 SQL以下に示す使用されるコマンドは、CSV ファイルの最初の 9 列を MySQL テーブルの 9 列にマッピングするだけです。
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n'
Solution
Toインポート中に列をスキップするには、MySQL ドキュメントで説明されている手法を利用できます。 LOAD DATA ステートメント内で不要な列をユーザー変数に割り当てることで、それらの列を効果的に破棄できます。以下の変更されたコマンドは、この手法を示しています。
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n' (column1, @dummy, column2, @dummy, column3, column4, column5, column6, column7, column8, @dummy, @dummy, column11)
この改良されたコマンドでは、不要な列 (9 および 10) がユーザー変数 @dummy に割り当てられ、インポート プロセス中に破棄されます。その結果、残りの列は希望どおりに正しくマッピングされます。CSV ファイルの列 1 ~ 8 は MySQL テーブルの最初の 8 列にマッピングされ、列 11 は MySQL テーブルの列 9 にマッピングされます。
以上がMySQL テーブルへの CSV インポート中に列をスキップするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。