[MySQL] command からクエリ実行して CSV ファイルに出力する
Linux CLI から MySQL クエリを実行した結果を CSV ファイルに出力する方法をご紹介します。
MySQL へクエリ実行して CSV ファイル出力する command
MySQL クエリを実行して CSV ファイル出力する command は以下のとおりです。
mysql -u [username] -p -h [host] [dbname] -e "[実行クエリ]" \
| sed -e 's/\t/,/g' \
> [Output CSV file path]
処理の解説:
- mysql -e オプションで CLI からクエリを実行する
- クエリ実行結果を sed コマンドでタブ文字 \t を , へ置換する
- 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/\t/,/g" \
>> output.csv
以上、MySQL クエリ実行結果を CSV ファイルへ保存したい、現場からお送りしました。