web-dev-qa-db-ja.com

MySQLクエリの出力をExcelまたは.txtファイルに保存する方法

MySQLクエリの出力をMS Excelシートにどのように保存しますか?

データを.txtファイルに格納することしかできないとしても、問題ありません。

99
rɑːdʒɑ

From MySQLクエリ結果をテキストまたはCSVファイルに保存します

MySQLは、selectステートメントの結果をサーバ上のテキストファイルに書き込むための簡単なメカニズムを提供します。 INTO OUTFILE命名法の拡張オプションを使用して、OpenOfficeやExcelなどのスプレッドシートアプリケーションやCSV形式のデータを受け入れる他のアプリケーションにインポートできるカンマ区切り値(CSV)を作成することができます。

次のようなクエリがあるとします。

SELECT order_id,product_name,qty FROM orders

これは3列のデータを返すので、クエリを使用して結果をファイル/tmp/orders.txtに入れることができます。

SELECT order_id,product_name,qty FROM orders
INTO OUTFILE '/tmp/orders.txt'

これにより、タブで区切られたファイルが作成されます。各行はそれぞれ独自の行になります。この動作を変更するために、クエリに修飾子を追加することが可能です。

SELECT order_id,product_name,qty FROM orders
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

この例では、各フィールドは二重引用符で囲まれ、フィールドはコンマで区切られ、各行は改行(\ n)で区切られた新しい行に出力されます。このコマンドの出力例は次のようになります。

"1","Tech-Recipes sock puppet","14.95" "2","Tech-Recipes chef's hat","18.95"

出力ファイルがまだ存在してはならないこと、およびMySQLがファイルに書き込もうとしているディレクトリへの書き込み権限を持っているため、ユーザーMySQLが実行されていることに注意してください。

構文

   SELECT Your_Column_Name
    FROM Your_Table_Name
    INTO OUTFILE 'Filename.csv'
    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'

あるいは、クライアントから出力を取得しようとすることもできます。

ローカルクライアントからクエリを実行して、出力をローカルファイルの宛先にリダイレクトすることができます。

mysql -user -pass -e "select cols from table where cols not null" > /tmp/output

このタスクを達成するために次のコードを書くことができます。

SELECT ... FROM ... WHERE ... 
INTO OUTFILE 'textfile.csv'
FIELDS TERMINATED BY '|'

結果をCSVにエクスポートしてからExcelシートにエクスポートします。

6
Charles Stevens