MySQL
コマンドラインからlinux
クエリを実行してcsv形式で結果を出力する簡単な方法はありますか?
これが私が今やっていることです:
mysql -u uid -ppwd -D dbname << EOQ | sed -e 's/ /,/g' | tee
list.csv select id, concat("\"",name,"\"") as name from students EOQ
引用符で囲む必要のある列が多数ある場合、またはエスケープする必要のある結果に引用符がある場合は、乱雑になります。
「INTO OUTFILE
」を使用できます
つまり.
SELECT a,b,c FROM my_table INTO OUTFILE '/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
これにより、各行の間にカンマを含むファイル「ca.csv」が作成されます。フィールド値のエスケープなど、他にもいくつかのオプションがありますが、それで十分です。
全部:
mysql -u uid -ppwd -D dbname -e "SELECT a,b,c FROM my_table INTO OUTFILE '/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';"
[〜#〜] edit [〜#〜]:-参照するリンク: SELECT INTO
フィールドをエスケープするには、FIELDS ESCAPED BY '"'
を追加する必要があります-これにより二重引用符が追加されます