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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-21 14:42:09988ブラウズ

How to Properly Load NULL Values from CSV Files into MySQL Tables?

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

課題:

CSV データ ファイルには空のフィールドが含まれることがよくあります。 NULLABLE 列で定義された MySQL テーブルにそれらをロードするときに問題が発生します。デフォルトでは、カラムのデフォルトが NULL であっても、MySQL は空のフィールドにゼロ (0) を割り当てます。これにより、NULL 値とゼロ値を区別しようとするときに混乱が生じる可能性があります。

解決策:

データのロード中に空のフィールドが NULL 値として解釈されるようにするには、次の点を考慮してください。次のメソッドを使用します:

  1. NULLIF() を使用します。機能:

LOAD DATA INFILE ステートメントを変更して、空のフィールドをローカル変数 (@vfour) に読み取り、ローカル変数が空の場合は実際のフィールド値を 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,'')
;

これにより、CSV ファイル内の空のフィールドが MySQL で NULL として解釈されるようになります。 table.

  1. すべての変数をローカル変数に読み取る:

CSV ファイル内のすべてのフィールドが空である可能性がある場合は、複数の SET ステートメントを使用して、 NULL 値を空のフィールドに割り当てます。

LOAD DATA INFILE '/tmp/testdata.txt'
INTO TABLE moo
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\n"
(@vone, @vtwo, @vthree, @vfour, @vfive)
SET
one = NULLIF(@vone,''),
two = NULLIF(@vtwo,''),
three = NULLIF(@vthree,''),
four = NULLIF(@vfour,'')
;

このアプローチにより、空のフィールドを明示的に処理できます。

これらのメソッドを利用すると、CSV データから MySQL テーブルに NULL 値を効果的にロードでき、空のフィールドがゼロ値として誤って解釈される問題を解決できます。

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

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