mysqlによる出力をcsvにする方法 †mysqlコマンドでcsv出力する方法を以下に記します。 関連資料 †csv出力 †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 ダブルクオートなどで囲みたい場合 †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" 改行コードを指定したい場合 †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
|