[MySQL] command からクエリ実行して CSV ファイルに出力する

Tadashi Shigeoka ·  Thu, July 18, 2019

Linux CLI から MySQL クエリを実行した結果を CSV ファイルに出力する方法をご紹介します。

MySQL

MySQL へクエリ実行して CSV ファイル出力する command

MySQL クエリを実行して CSV ファイル出力する command は以下のとおりです。

mysql -u [username] -p -h [host] [dbname] -e "[実行クエリ]" \\
| sed -e 's/\  /,/g' \\
> [Output CSV file path]

処理の解説:

  1. mysql -e オプションで CLI からクエリを実行する
  2. クエリ実行結果を sed コマンドでタブ文字 \ を , へ置換する
  3. sed で置換した結果をリダイレクタ > でファイルへ出力する

実用例 header 有り

1行目の header 有りのサンプルコマンドです。

mysql -p test -e \\
"select utm_campaign, count(*), sum(num_purchase) from customers where utm_campaign = 'hoge';" \\
> output.csv

実用例 header 無し

1行目の header 無しのサンプルコマンドです。-N オプションを付けてヘッダーを表示させないことができます。

mysql -u [username] -p -h [host] [dbname] -N -e \\
"select utm_campaign, count(*), sum(num_purchase) from customers where utm_campaign = 'hoge';" \\
| sed -e "s/\  /,/g" \\
>> output.csv

以上、MySQL クエリ実行結果を CSV ファイルへ保存したい、現場からお送りしました。