web-dev-qa-db-ja.com

Mysqlクエリの結果をExcelにエクスポートしますか?

私の要件は、クエリの結果全体を保存することです

SELECT * FROM document 
WHERE documentid IN (SELECT * FROM TaskResult WHERE taskResult = 2429)

excelファイルに。

51
Priya

これを実現する一般的な方法は、CSVにエクスポートしてからCSVをExcelにロードすることです。
SELECTステートメントにINTO OUTFILE句を含めることで、MySQLコマンドラインツールを使用してこれを行うことができます。

SELECT ... FROM ... WHERE ... 
INTO OUTFILE 'file.csv'
FIELDS TERMINATED BY ','

詳細なオプションについては このリンク をご覧ください。

または、mysqldumpを使用して、-tabオプションを使用して、分離された値の形式でダンプを保存できます。 this link。 を参照してください

mysqldump -u<user> -p<password> -h<Host> --where=jtaskResult=2429 --tab=<file.csv> <database> TaskResult
87
Roland Bouman

良い例は、結合がある場合、またはどこに近い場合、クエリの終了後に書き込む場合です:

 select 'idPago','fecha','lead','idAlumno','idTipoPago','idGpo'
 union all
(select id_control_pagos, fecha, lead, id_alumno, id_concepto_pago, id_Gpo,id_Taller,
id_docente, Pagoimporte, NoFactura, FacturaImporte, Mensualidad_No, FormaPago,
Observaciones from control_pagos
into outfile 'c:\\data.csv' 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n');
6
danielad

以下のクエリを使用します。

 SELECT * FROM document INTO OUTFILE 'c:/order-1.csv' FIELDS TERMINATED BY ','  
 ENCLOSED BY '"' LINES TERMINATED BY '\n';
6
Aditya Dwivedi

私の場合、SQLの結果をクライアント側のファイルにダンプする必要があります。これは、データベースからデータをオフロードする最も一般的な使用例です。多くの場合、サーバーにアクセスできないか、結果をサーバーに書き込みたくありません。

mysql -h hostname -u username -ppwd -e "mysql simple sql statement that last for less than a line" DATABASE_NAME > outputfile_on_the.client

問題は、数行続く複雑なクエリがある場合に発生します。コマンドラインを使用して結果をファイルに簡単にダンプすることはできません。このような場合、複雑なクエリをlongquery_file.sqlなどのファイルに入れてから、コマンドを実行できます。

mysql -h hn -u un -ppwd < longquery_file.sql DBNAME > output.txt

これは私のために働いた。私にとって唯一の難しさはタブ文字です。時々group_cancat(foo SEPARATOR 0x09)に使用すると、出力ファイルに「\ t」として書き込まれます。 0x09文字はASCII TABです。しかし、この問題は、SQL結果をファイルにダンプする方法に固有のものではありません。私のポケットベルに関連している可能性があります。この問題に対する答えを見つけたら教えてください。この投稿を更新します。

3
Kemin Zhou

これは古い質問ですが、Googleでの最初の結果の1つです。これを行う最も速い方法は、ODBCクエリまたはMySQL For Excelを使用してMySQLをExcelに直接リンクすることです。後者はOPへのコメントで言及されましたが、CSVへのエクスポートはこれを達成するための最も効率的な方法ではないため、私はそれが本当に独自の答えに値すると感じました。

ODBCクエリ -これはセットアップが少し複雑ですが、はるかに柔軟です。たとえば、MySQL For Excelアドインでは、クエリ式でWHERE句を使用できません。この方法の柔軟性により、より複雑な方法でデータを使用することもできます。

MySQL For Excel -クエリで複雑なことをする必要がない場合、または何かを迅速かつ簡単に達成する必要がある場合は、このアドインを使用します。データベースにビューを作成して、クエリの制限の一部を回避できます。

0
Anthony