【MySQL】NULL値を含むテーブルをCSVにエクスポートする際、\N以外の値を出力する方法
NULL値を含むテーブルからCSVファイルにデータをエクスポートする場合、デフォルトではNULLの部分が \N として出力されます。これ以外の任意の値(例:「Not Applicable」など)をCSVに保存したいときは、IFNULL関数を使って\Nの部分を別の値に置き換えます。
IFNULL関数は、第1引数がNULLでない場合はそのまま値を返し、NULLである場合には第2引数で指定した代替値を返す関数です。この性質を利用することで、エクスポート時のNULL表示を自由に制御できます。
具体例
次のようなデータを持つ「student_info」テーブルの内容をエクスポートすることを想定します。
mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 125 | Raman | Shimla | Computers | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | | 150 | Saurabh | NULL | Literature | +------+---------+------------+------------+ 7 rows in set (0.00 sec)
結果を見ると、idが150の行ではAddressフィールドがNULLになっていることがわかります。この状態で通常どおりエクスポートすると、該当箇所には\Nが出力されてしまいます。
IFNULLを使ったエクスクポートクエリ
そこで、各カラムをIFNULL関数で囲んだ次のクエリを実行します。こうすると、テーブルのデータが student_28.csv にエクスポートされ、NULLの代わりに「Not Applicable」が格納されます。
mysql> Select IFNULL(id,'Not Applicable'), IFNULL(Name,'Not Applicable'), IFNULL(Address,'Not Applicable'), IFNULL(Subject,'Not Applicable') from Student_info INTO OUTFILE 'C:/mysql/bin/mysql-files/student_28.csv' FIELDS TERMINATED BY ','; Query OK, 7 rows affected (0.02 sec)
出力結果の確認
生成された student_28.csv の中身を確認すると、元々\Nだった箇所に「Not Applicable」が正しく書き込まれていることがわかります。
101 YashPal Amritsar History 105 Gaurav Chandigarh Literature 125 Raman Shimla Computers 130 Ram Jhansi Computers 132 Shyam Chandigarh Economics 133 Mohan Delhi Computers 150 Saurabh Not Applicable Literature
このように、SELECT句で対象カラムをIFNULL関数でラップするだけで、NULL値の扱いを柔軟に変更できます。なお、「Not Applicable」の部分は用途に応じて「不明」「-」など任意の文字列に置き換えても問題ありません。
-
MySQLで製品テーブルから製品の合計金額を計算する方法
MySQLで製品テーブルから合計金額を算出する手順 在庫管理や売上集計などの場面では、「数量 × 単価」の合計値を求めたいケースがよくあります。MySQLでは SUM() 関数と乗算を組み合わせることで、この計算を1つのSQLクエリで簡単に実現できます。 ここでは、サンプルテーブルを作成し、実際に合計金額を計算するまでの手順を解説します。 1. テーブルの作成 まず、製品ID・数量・単価を持つテーブルを作成します。 mysql> create table DemoTable ( ProductId int NOT NULL AUTO_INCREMENT PRIMARY
-
JavaでCSVファイルを読み込む方法|BufferedReaderによる基本的なデータ読み取り手順
CSVとは「Comma Separated Values(カンマ区切り値)」の略で、テキスト形式のデータファイルの一種です。CSVファイルでは、1行ごとに複数の項目がカンマ(,)で区切られて記録されており、拡張子は「.csv」として保存されます。表形式のデータを扱う際に広く利用されている、シンプルで汎用性の高いフォーマットです。 JavaでCSVファイルを読み込む仕組み JavaでCSVファイルを読み込むには、BufferedReaderクラスのreadLine()メソッドを使用するのが基本的な方法です。このメソッドを使うと、ファイルの内容を1行ずつ順番に読み取ることができます。 読み取った各