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権限のあるユーザで実行する必要があります。
  • リモート接続でローカルにファイルを作成することはできません。

参考サイト


以上。





 

Sponsored Link

 

Comments