MySQLで抽出結果をファイルに出力する方法

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)