rukurxの日記

自分の日々の作業や調べたことのメモ

MySQLのSELECT結果をエクスポートする

MySQLからデータをエクスポートするとtsv形式になる。 オプションでCSVとかの形式も選べるのかと思っていたが、どうやらできなそう。

デフォルトのエクスポートだとtsv形式でファイルに出力される

echo "SELECT * FROM user" | mysql -uroot -p > data.tsv

csv形式にするには出力をsedで変換すれば一応できなくもない

echo "SELECT * FROM user" | mysql -uroot -p | sed 's/"/""/g;s/^/"/;s/$/"/;s/\n//g' > data.csv

ついでにzipにする

echo "SELECT * FROM user" | mysql -uroot -p | gzip -c > data.tsv.zip

csvファイルをzipする

echo "SELECT * FROM user" | mysql -uroot -p | sed 's/"/""/g;s/^/"/;s/$/"/;s/\n//g' | gzip -c > data.csv.zip

参考

obel.hatenablog.jp