列をスキップしながら CSV データを MySQL テーブルにインポートする
多くのデータ処理シナリオでは、データを MySQL テーブルからインポートする必要がある状況に遭遇することがあります。 CSV ファイルを MySQL テーブルに追加しますが、CSV ファイル内のすべての列がターゲット テーブルの列に対応するわけではありません。この記事では、LOAD DATA INFILE コマンドを使用して MySQL テーブルにデータをインポートする際に CSV ファイル内の列をスキップする方法について説明します。
問題ステートメント
MySQL テーブルよりも多くの列を含む CSV ファイルがあり、CSV ファイルの特定の列を MySQL テーブルの特定の列にマップし、他の列をスキップする必要があります。課題は、不要な列を無視するようにインポート コマンドを構成することにあります。
解決策
LOAD DATA INFILE を使用してデータのインポート中に列をスキップするには、次の組み合わせを利用できます。フィールド区切り文字と列マッピング。 LOAD DATA INFILE コマンドはフィールド区切り文字の設定をサポートしているため、CSV ファイル内の個々の値を区切る文字を指定できます。フィールド区切り文字を適切に設定すると、不要な列を効果的にスキップできます。
これは、CSV ファイル内の不要な列をスキップする LOAD DATA INFILE コマンドの修正バージョンです:
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n' (col1, @dummy1, col2, @dummy2, col3, @dummy3, col4, @dummy4, col5, @dummy5, col6, @dummy6, col7, @dummy7, col8, @dummy8, col9, @dummy9, col10, @dummy10, col11)
この変更されたコマンドでは、新しい構文 (col1、@dummy1、col2、@dummy2、...col11) が導入されました。この構文を使用すると、CSV ファイル内の列と MySQL テーブル内の列の間のマッピングを指定できます。不要なカラムを @dummy のプレフィックスが付いたユーザー変数 (@dummy1、@dummy2 など) に割り当てることで、それらのカラムの値を破棄し、テーブルにロードしないように MySQL に効果的に指示します。
このアプローチに従うことで、CSV ファイルから MySQL テーブルにデータを正常にインポートし、必要な列のみをマッピングし、不要な列をスキップできます。
以上がCSV データを MySQL にインポートするときに列をスキップするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。