MySQL - SELECT結果をCSV出力!
Updated:
今日は、MySQLでSELECT文を発行した際の結果をCSVファイルに出力する方法についてです。
と言っても、SQL文を作成する際に、少しばかし記述を追加するだけです。
記述例
Windows上でテーブル”hoge”の全レコード・全カラムのデータを”D:\Work\hoge.csv”に出力する例です。 コマンドラインからMySQLにログインするか、GUIツール「phpMyAdmin」にrootでログインして実行してください。
SELECT *
INTO OUTFILE "D:\\Work\\hoge.csv" FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'
FROM hoge
"D:\\Work\\hoge.csv"
はWindowsでの記述例です。”"はエスケープ処理が必要です。サーバがLinuxサーバならファイルの作成先もLinuxサーバ側にします。
TERMINATED BY ','
は区切り文字の設定です。
ENCLOSED BY '"'
は文字列カラムをダブルクォーテーションでくくる設定です。
LINES TERMINATED BY '\n'
はレコード単位で意図的に改行していますが、デフォルトで改行されるので無くても大丈夫だと思います。 ダブルクォーテーションでくくる必要も無く、意図的に改行もしないのであれば、
SELECT *
INTO OUTFILE "D:\\Work\\hoge.csv" FIELDS TERMINATED BY ','
FROM hoge
で大丈夫です。
注意
- 上記の方法でCSVファイルを出力する際、出力するファイルが既に存在する場合はエラーとなります。既に存在する場合は、ファイル名を変えるか、存在するファイルを削除しておきます。
- ファイル出力するには FILE権限のあるユーザで実行する必要があります。
- リモート接続でローカルにファイルを作成することはできません。
参考サイト
以上。
Comments