ホームページ >データベース >mysql チュートリアル >データの不整合や解析エラーを処理しながら、CSV データを MySQL テーブルに効率的にインポートするにはどうすればよいですか?

データの不整合や解析エラーを処理しながら、CSV データを MySQL テーブルに効率的にインポートするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-19 03:09:13564ブラウズ

How Can I Efficiently Import CSV Data into MySQL Tables While Handling Data Misalignment and Parsing Errors?

MySQL テーブルへの CSV ファイルのインポート

問題: CSV ファイルから MySQL にデータを正しくロードできないテーブルが欠落している、または位置がずれているなどの問題があるdata.

分析:

LOAD DATA INFILE を使用した元のアプローチでは、複数行にまたがるテキスト宣伝文の誤った解析と適切な区切り文字の指定の欠如によりエラーが発生しました。

解決策 1 (LOAD DATA を使用する) INFILE):

これらの問題に対処するために、LOAD DATA INFILE ステートメントが次のパラメータを含むように変更されました。

  • COLUMNS TERMINATED BY ',': 列区切り文字を指定します。
  • はオプションで囲まれます。 '"': テキスト フィールドを二重引用符で囲むことができることを示します。
  • ESCAPED BY '"': テキスト フィールド内の二重引用符がエスケープされることを指定します。
  • LINES TERMINATED BY 'n':行が改行文字で終了することを示します。
  • IGNORE 1 LINES: 最初の行を無視します。 CSV ファイルのファイル (通常は列名が含まれています)。

これにより、解析の問題は修正されましたが、データは依然として不整列でした。

解決策 2 (mysqlimport を使用):

CSV ファイルを MySQL にインポートするより効率的で信頼性の高い方法は、 mysqlimport ユーティリティ。区切り文字やその他のインポート パラメータを指定するための追加オプションが提供されます。

mysqlimport を使用するには:

  1. データベースとテーブルを作成します: データベースとテーブルを作成します。 CSVデータをインポートしたい
  2. を使用します。コマンド: を置き換えて次のコマンドを実行します。および <テーブル名>特定のデータベース名とテーブル名を使用します:
mysqlimport --ignore-lines=1 \
            --fields-terminated-by=, \
            --local -u root \
            -p Database \
             TableName.csv
  • --ignore-lines=1: CSV ファイルの最初の行 (通常は列名が含まれます) を無視します。
  • --fields-terminated-by=,: 列区切り文字を次のように指定します。 comma.
  • --local: データがローカル ホスト上にあることを示します。
  • -u root: MySQL ユーザー (この場合は「root」) を指定します。
  • -p: MySQL パスワードの入力を求めます。

このメソッドは、インポートするためのより正確かつ効率的な方法を提供します。 CSV データを MySQL テーブルに変換します。

以上がデータの不整合や解析エラーを処理しながら、CSV データを MySQL テーブルに効率的にインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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