ホームページ > データベース > mysql チュートリアル > 空のフィールドを含む CSV ファイルから NULL 値を含む MySQL テーブルを適切にロードするにはどうすればよいですか?

空のフィールドを含む CSV ファイルから NULL 値を含む MySQL テーブルを適切にロードするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-26 12:00:19
オリジナル
268 人が閲覧しました

How to Properly Load MySQL Tables with NULL Values from CSV Files Containing Empty Fields?

CSV データから NULL 値を含む MySQL テーブルをロードする

CSV データを MySQL テーブルにインポートする場合、NULL 値を正しく処理して、データの整合性を維持します。次の状況を考えてみましょう。

いくつかの数値列を含む "moo" という名前のテーブルがあり、そのすべてに NULL 値が許可されています。 CSV ファイルからデータをロードすると、列内に空のフィールドが表示されます。ただし、これらのフィールドに NULL を設定する代わりに、MySQL はフィールドに 0 を割り当てます。これにより、NULL とゼロを区別しようとすると、データの不整合が発生する可能性があります。

この問題を解決するには、次のアプローチを使用します:

  1. 空のフィールドをローカル変数に読み取ります。
  2. ローカル変数が空の文字列 (NULL に相当) かどうかを確認します。
  3. 実際の変数を設定しますローカル変数が空の文字列の場合、テーブル フィールドの値は NULL に設定されます。

ステートメントの例を次に示します。

LOAD DATA INFILE '/tmp/testdata.txt'
INTO TABLE moo
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\n"
(one, two, three, @vfour, five)
SET four = NULLIF(@vfour,'')
;
ログイン後にコピー

このステートメントでは、4 番目のフィールド (「four」) が読み取られます。ローカル変数 @vfour に代入します。 @vfour に空の文字列が含まれている場合、NULLIF() 関数を使用してテーブルの 4 番目のフィールドが NULL に設定されます。

空のフィールドが含まれる可能性のある複数の列がある場合は、それらすべてを変数に読み込んで次を使用できます。複数の SET ステートメントを使用して、NULL 値を適切に処理します。

以上が空のフィールドを含む CSV ファイルから NULL 値を含む MySQL テーブルを適切にロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート