MySQLの抽出結果をファイルに出力するには、SELECT INTO OUTFILEを使用します。
構文
以下のコマンドでファイルを出力します。
SELECT フィールド名 FROM テーブル名 INTO OUTFILE 'ファイル名'
secure_file_priv
secure_file_privが設定されている場合は、、設定されているディレクトリ以外への出力はできないようになります。
mysql> SELECT @@secure_file_priv;
+-----------------------+
| @@secure_file_priv |
+-----------------------+
| /var/lib/mysql-files/ |
+-----------------------+
1 row in set (0.00 sec)
FILESオプション、LINESオプション
デフォルトだと、各フィールドはタブで区切られています。
FILESオプションで区切り文字を、LINESオプションで改行コードを変更できます。
mysql> SELECT * FROM test INTO OUTFILE '/var/lib/mysql-files/test.csv'
-> FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
-> LINES TERMINATED BY '\r\n';
Query OK, 2 rows affected (0.00 sec)
ヘッダをつける
ヘッダをつけるオプションはないので、UNIONでつけます。
mysql> SELECT 'id', 'name' UNION SELECT * FROM test INTO OUTFILE '/var/lib/mysql-files/test2.csv';
Query OK, 3 rows affected (0.00 sec)