1. ホーム
  2. mysql

[解決済み] MySQL クエリ出力を excel または .txt ファイルに保存する方法は?重複

2022-05-10 14:12:21

質問

MySQL クエリの出力を MS Excel シートに保存するにはどうすればよいですか?

にしか保存できない場合でも、そのデータを .txt ファイルであれば大丈夫です。

どのように解決するのですか?

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

<ブロッククオート

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

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

SELECT order_id,product_name,qty FROM orders

というクエリを使って、3列のデータを返すと、その結果は に入れることができます。

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'

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

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

出力ファイルは既に存在してはならないこと、そして 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

ヒント: 絶対パスを指定せず、次のようなものを使う場合 INTO OUTFILE 'output.csv' または INTO OUTFILE './output.csv' で指定されたディレクトリに出力ファイルを格納します。 show variables like 'datadir'; .