エクスポートした値にNullを含む場合に「¥N」になる場合 「MySQL」
MySQLでCSVファイルにエクスポートした場合、「Null」が「¥N」になる
下記のように「SELECT * FROM 〜〜 INTO OUTFILE 〜〜」でMySQLのデータをCSVファイルにエクスポートした場合、「Null」を含むとその値が「¥N」となって出力されます
mysqL> SELECT * FROM table_name INTO OUTFILE '/var/tmp/test_table.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
「¥N」を「””」などの空白に置換すれば空白扱いになりますが、その都度行うのは面倒ですしデータが大きいと置換に時間がかかります。
IFNULL関数で、NULLの場合は、空文字に設定して出力する
MySQLでは、「Null」が「¥N」になってしまうのは、MySQLではNullと空文字の扱いが違うためです。
そのため、Nullを含む場合は出力時に「空文字」になるように、IFNULL()関数してNullの場合は、どのように置換するか指定します
mysqL> SELECT name, price, IFNULL(code, '') FROM table_name INTO OUTFILE '/var/tmp/test_table.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
ディスカッション
コメント一覧
まだ、コメントがありません