ホームページ >データベース >mysql チュートリアル >LOAD DATA INFILE を使用して CSV から MySQL にゼロではなく NULL 値をロードするにはどうすればよいですか?

LOAD DATA INFILE を使用して CSV から MySQL にゼロではなく NULL 値をロードするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-22 07:28:09774ブラウズ

How to Load NULL Values, Not Zeros, from a CSV into MySQL using LOAD DATA INFILE?

MySQL: CSV データからの NULL 値のロード

問題:

空のフィールドを持つ CSV ファイルからデータをロードするときLOAD DATA INFILE コマンドを使用して MySQL テーブルにデータを書き込むと、MySQL は空のフィールドに代わりに 0 を割り当てます。列が NULL デフォルト値で定義されている場合でも NULL。

解決策:

空のフィールドに NULL 値を正しくロードするには、問題のあるフィールドをローカル ファイルに読み込みます。変数を使用し、変数が次の場合は条件付きで実際のフィールド値を 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,'')
;

説明:

  • LOAD DATA INFILE ステートメントは、CSV ファイルから moo テーブルにデータを読み取ります。
  • FIELDS 句は、CSV ファイル内のフィールドと、それに対応する列名を定義します。 table.
  • 4 番目のフィールド (@vfour) は、4 つの列に直接ではなく、ローカル変数に読み込まれます。
  • SET ステートメントは、@vfour 変数が空 ('') かどうかを確認します。 NULLIF 関数を使用します。
  • @vfour が空の場合、4 つの列は NULL に設定されます。それ以外の場合は、元の値が保持されます。

追加の注意:

すべてのフィールドが空である可能性がある場合は、すべてをローカル変数に読み取り、複数のフィールドを使用します。条件付きで NULL 値を割り当てる SET ステートメント。

以上がLOAD DATA INFILE を使用して CSV から MySQL にゼロではなく NULL 値をロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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