MySQLクエリ結果をCSV形式で出力するにはどうすればよいですか?質問する

MySQLクエリ結果をCSV形式で出力するにはどうすればよいですか?質問する

LinuxのコマンドラインからMySQLクエリを実行し、結果を出力する簡単な方法はありますか?CSVファイルフォーマット?

私が今やっていることは次のとおりです:

mysql -u uid -ppwd -D dbname << EOQ | sed -e 's/        /,/g' | tee list.csv
select id, concat("\"",name,"\"") as name
from students
EOQ

引用符で囲む必要がある列が多数ある場合、または結果にエスケープする必要がある引用符がある場合、状況が複雑になります。

ベストアンサー1

からMySQLクエリ結果をテキストまたはCSVファイルに保存する:

SELECT order_id,product_name,qty
FROM orders
WHERE foo = 'bar'
INTO OUTFILE '/var/lib/mysql-files/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

注: この構文は次のように並べ替える必要があるかもしれません。

SELECT order_id,product_name,qty
INTO OUTFILE '/var/lib/mysql-files/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM orders
WHERE foo = 'bar';

MySQL の最近のバージョンでは。

このコマンドを使用すると、列名はエ​​クスポートされません。

また、 MySQL を実行しているサーバー/var/lib/mysql-files/orders.csv上にあることにも注意してください。MySQL プロセスを実行しているユーザーには、選択したディレクトリへの書き込み権限が必要です。権限がない場合、コマンドは失敗します。

リモートサーバー(特にホスト型または仮想化されたマシン)からローカルマシンに出力を書き込む場合は、ヘロクまたはアマゾンRDS)の場合、このソリューションは適切ではありません。

おすすめ記事