#navi(../)
* mysqlによる出力をcsvにする方法 [#g8df3d4e]
mysqlコマンドでcsv出力する方法を以下に記します。

#contents
#htmlinsertpcsp(db-top.html,db-sp.html)

* 関連資料 [#ia1fdbee]
-[[コマンドラインからSQLを実行する方法>MySQL/コマンドラインからSQLを実行する方法]]

* csv出力 [#w1d1f4f1]
into outfile, ields terminated byを使用することによりCSV出力されます。
 $ mysql -u root -p -s db1
 Enter password: 
 mysql> select * from t1;
 a       b       c
 1       2       3
 4       5       6
 mysql> select * from t1 into outfile "/tmp/out.csv" fields terminated by ',';
 mysql> \q

 $ cat /tmp/out.csv 
 1,2,3
 4,5,6

* ダブルクオートなどで囲みたい場合 [#s4a6a2ac]
enclosed byを使用することにより値を囲む文字を指定することができます。
 mysql> select * from t1;
 +------+------+------+
 | a    | b    | c    |
 +------+------+------+
 |    1 |    2 |    3 |
 |    4 |    5 |    6 |
 +------+------+------+
 2 rows in set (0.00 sec)
 
 mysql> select * from t1 into outfile "/tmp/out.csv" fields terminated by ',' enclosed by '"';
 Query OK, 2 rows affected (0.00 sec)

 $ cat /tmp/out.csv 
 "1","2","3"
 "4","5","6"

* 改行コードを指定したい場合 [#y62643d3]
lines terminated byを使用することにより改行コードを指定することができます。
 mysql> select * from t1;
 +------+------+------+
 | a    | b    | c    |
 +------+------+------+
 |    1 |    2 |    3 |
 |    4 |    5 |    6 |
 +------+------+------+
 2 rows in set (0.00 sec)
 
 mysql> select * from t1 into outfile "/tmp/out_crlf.csv" fields terminated by ',' lines terminated by '\r\n';
 Query OK, 2 rows affected (0.00 sec)
 
 mysql> select * from t1 into outfile "/tmp/out_lf.csv" fields terminated by ',' lines terminated by '\n';
 Query OK, 2 rows affected (0.00 sec)

改行コードが0D0Aと0Aになっているのが確認できます。
 $ hexdump -C out_crlf.csv 
 00000000  31 2c 32 2c 33 0d 0a 34  2c 35 2c 36 0d 0a        |1,2,3..4,5,6..|
 0000000e
 $ hexdump -C out_lf.csv 
 00000000  31 2c 32 2c 33 0a 34 2c  35 2c 36 0a              |1,2,3.4,5,6.|
 0000000c

- hexdumpコマンドについては、以下のリンク記事を参照してください。
-[[逆引きUNIXコマンド/HEX形式でファイルを見たい・hexdumpコマンド>http://linux.just4fun.biz/%E9%80%86%E5%BC%95%E3%81%8DUNIX%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/HEX%E5%BD%A2%E5%BC%8F%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%A6%8B%E3%81%9F%E3%81%84%E3%83%BBhexdump%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89.html]]

#htmlinsertpcsp(db-btm.html,db-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS