CSV データから NULL 値を含む MySQL テーブルをロードする
CSV データを MySQL テーブルにインポートする場合、NULL 値を正しく処理して、データの整合性を維持します。次の状況を考えてみましょう。
いくつかの数値列を含む "moo" という名前のテーブルがあり、そのすべてに NULL 値が許可されています。 CSV ファイルからデータをロードすると、列内に空のフィールドが表示されます。ただし、これらのフィールドに NULL を設定する代わりに、MySQL はフィールドに 0 を割り当てます。これにより、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 サイトの他の関連記事を参照してください。