その他
    ホーム 技術発信 DoRuby MySQLの出力結果をファイルに出力
    MySQLの出力結果をファイルに出力
     

    MySQLの出力結果をファイルに出力

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    業務上、UT、IT等でデータベース値とテストシナリオ期待値を見比べる機会があり、
    MySQLクライアントで値を見るのに手間を感じ、MySQLの結果をファイル出力出来ないか調べました。

    MySQLの出力結果をファイルにはきだしたいとき

    mysql> SELECT * FROM [table] INTO OUTFILE "[file]" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '[クォート文字]';
    

    ただし、この方法で指定するCSVファイルの出力パスは、
    DBサーバー側のファイルパスを指しています。
    そのため、サーバーとクライアントのホストが異なる場合は、
    クライアントホストのファイルパスを探しても、CSVファイルは出力されていません。

    CSVファイルに出力するコマンド

    MySQLクライアント使わない方法もありました。

    mysql -u [ユーザー名] -p -h [DBサーバーホスト名] [DB名] -e "`[実行SQL]`" | sed -e 's/\t/,/g' > [出力CSVファイルパス]
    

    このコマンドで、リモートDBの結果をローカルCSVファイルに出力できます。