ホームページ >データベース >mysql チュートリアル >CSV データを MySQL にインポートするときに列をスキップするにはどうすればよいですか?

CSV データを MySQL にインポートするときに列をスキップするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-16 00:23:02266ブラウズ

How to Skip Columns When Importing CSV Data into MySQL?

列をスキップしながら 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。