MySQLテックラボ

MySQLでデータをCSV出力する

MySQLでテーブルに記録されたデータを出力するには、INTO OUTFILEを使います。

SELECT * FROM テーブル名 INTO OUTFILE "ファイル名" FIELDS TERMINATED BY '\t';

FIELDS TERMINATED BYでフィールドの区切りを指定できます。
フォーム内容を記録している場合などは、フィールド内に様々な文字が含まれると思いますが、タブはなかなか記録されないのでだいたいタブ区切りにしておけばうまくいきます。

INTO OUTFILEには区切り線を指定するFIELDS TERMINATED BY以外にも、FIELDS ESCAPED BYでエスケープする文字を指定したりなど、多くのオプションがあります。

TERMINATED BY
フィールドの区切り文字
ENCLOSED BY
フィールドを囲う文字
LINES TERMINATED BY
行の区切り文字
ESCAPED BY
エスケープ文字

mytableというテーブルを/home/user/mytabele.csvとして出力するには下記のように指定します。
区切り文字はカンマ( , )、囲い文字はダブルクォーテーション( " )、エスケープ文字はバックスラッシュ( \ )、行末は\r\nとします。

LOAD DATA LOCAL INFILE "/home/user/mytabele.csv"
	INTO TABLE mytable
	FIELDS
		TERMINATED BY ','
		ENCLOSED BY '"'
		ESCAPED BY '\\'
		LINES TERMINATED BY '\r\n'
;

関連記事