[MySQL] DBクエリー検索結果をCSVファイルですぐに抽出する方法


はじめに

DBでクエリー検索結果をCSV ファイルとして取得するときには、2つの方法がある。
DBの中からクエリーをすぐに入力して抽出することもでき、コンソールでコマンドとして抽出する方法もある。

DBがあるサーバーと同じサーバーにファイルを抽出しようとする場合、前者と後者の方法をすべて適用可能であるが、DBサーバーを別々に運用している場合は、1の方法は使用できない。 ファイルが接続サーバ側ではなく、DB側サーバに生成されるだろうからである。

単純にバックアップ目的のEXPORTなら、mysqldumpでエクスポートする方が簡単だ。

DB内からクエリとしてCSVを抽出する方法

SELECT col1, col2, col3 FROM MY TABLE
INTO OUTFILE '~/20190101.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

コンソールコマンドでDBからCSVを抽出する方法

mysql -u$USER -p$PASSWORD -D$DATABASE -e "select * from mytable" | tr '\t' ',' > '~/20190101.csv'