課題:
CSV データ ファイルには空のフィールドが含まれることがよくあります。 NULLABLE 列で定義された MySQL テーブルにそれらをロードするときに問題が発生します。デフォルトでは、カラムのデフォルトが NULL であっても、MySQL は空のフィールドにゼロ (0) を割り当てます。これにより、NULL 値とゼロ値を区別しようとするときに混乱が生じる可能性があります。
解決策:
データのロード中に空のフィールドが NULL 値として解釈されるようにするには、次の点を考慮してください。次のメソッドを使用します:
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.
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 サイトの他の関連記事を参照してください。