CSV ファイルから MySQL テーブルにデータをインポートする場合、必ずしもすべての列をマップする必要はありません。無関係な列をスキップしたり、データの不一致が存在する列のマッピングを避けたりすることが望ましい場合があります。
問題:
11 列がある CSV ファイルについて考えてみましょう:
col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11
MySQL テーブルには 9 つしかありませんcolumns:
col1, col2, col3, col4, col5, col6, col7, col8, col9
目標は、CSV の列 1 ~ 8 を MySQL テーブルの最初の 8 列にインポートすることですが、列 9 と 10 をスキップして、CSV の列 11 を列 9 にマップすることです。
解決策:
内の列をスキップするにはCSV のインポート中に、LOAD DATA INFILE コマンドで @dummy 変数を使用します。
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table ( col1, @dummy1, col2, @dummy2, col3, col4, col5, col6, col7, col8, @dummy3, @dummy4, col9 ) FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n'
このコマンド内:
このソリューションでは、CSV 列をテーブル列に選択的にマッピングできます。数が異なります。
以上がLOAD DATA INFILE を使用して CSV ファイルを MySQL にインポートするときに列をスキップするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。