気付けばこの投稿が記念すべき100記事目でした。
いつも必死に書いていましたが、案外100記事ってあっという間ですね。
さて今回は、MySQLでSELECT文で取得したデータを ○○○.csv のような形式で、外部ファイルに書き込む方法です。
すぐやり方を忘れる or 定型文としてメモしてあるのをコピーして使っているだけなので、私のための備忘録としてまとめます。
select * from [テーブル名] INTO OUTFILE '[ファイル名]' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
こちらを実行すると、指定したファイル名(例えば data.csv など)で新しくファイルが作られ、そこに抽出したデータが書き込まれます。
具体的には、まず「INTO OUTFILE [ファイル名]」でデータをファイルに書き込みます。
なお、既にあるファイル名を指定することはできません。
次に「FIELDS TERMINATED BY ‘,’」で、抽出したデータをカンマ区切りに変更します。
「OPTIONALLY ENCLOSED BY ‘”‘」では囲み文字を指定でき、抽出したデータを指定した文字で囲むことができます。
今回は、「”(ダブルコーテーション)」でデータを囲みます。
また、サンプルコードでは指定しておりませんが、改行コードを指定することもでき、「LINES TERMINATED BY ‘\r\n’」を使います。
が、エクセルなどで開くと、いい感じに整形してくれるので、あまりこのオプションを使うことは少なそう。
データベースのデータをCSVファイルとして抽出できると、あとから表でまとめるときにとても楽なので、このオプションはとても重宝しています。
が、初めて使ったときは変な風に指定してしまい、おかしな形式になってしまったので、慣れるまではサンプルコードをコピー&ペーストした方が無難ですね。