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

MySQL への CSV インポート中に列をスキップするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-17 12:00:04364ブラウズ

How to Skip Columns During CSV Import to MySQL?

MySQL への CSV インポートの列をスキップする

LOAD DATA INFILE コマンドを使用して CSV ファイルを MySQL テーブルにインポートする場合、一般的に次のことが行われます。 CSV ファイル内の列の数がターゲット テーブル内の列と異なるシナリオが発生します。このような場合、特定の列をスキップする必要があります。

問題:

11 列を含む CSV ファイルと、9 列のみを含む MySQL テーブルがあるとします。 CSV ファイルの列 1 ~ 8 をテーブルの列 1 ~ 8 に直接マップしたいとしますが、次の 2 つの列をスキップして、CSV ファイルの列 11 をテーブルの列 9 にマップします。

解決策:

インポート プロセス中に列をスキップするには、テーブルの列に値を挿入せずにユーザー変数に値を割り当てる MySQL の機能を利用できます。これは、スキップされた列をユーザー変数に割り当て、その値を実質的に無視することによって実現されます。

目的のマッピングを実現する変更された SQL コマンドを次に示します。

LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY ''
LINES TERMINATED BY '\n'
(column1, @dummy1, column2, @dummy2, column3, column4, column5, column6, column7, column8, @dummy3, column9);

この変更されたコマンドでは、2 人のユーザー変数 (@dummy1 および @dummy2) は、それぞれ CSV ファイルの 9 列目と 10 列目の値を取得するために使用されますが、これらの値はテーブルのどの列にも割り当てられません。その結果、それらは事実上スキップされ、CSV ファイルの列 11 がテーブルの列 9 に正しくマッピングされるようになります。

以上がMySQL への CSV インポート中に列をスキップするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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