MySQLからcsvで出力する方法

In: mysql

3 9月 2008

MySQLからDumpして変換ではなく、直接CSVで出力する方法を探していると、こんなやり方が紹介されていた。

データをCSVで入出力する方法

CSVに出力(エクスポート)する方法

広告

以下のように、データベースと出力ファイルを指定すれば出力されます。

mysql> select * from database into outfile "/tmp/dump.csv" fields terminated by ',';

CSVから入力(インポート)する方法

以下のように、入力ファイルとデータベースのテーブルを指定すれば入力できます。

mysql> load data local infile "/tmp/dump.csv" into table tablename fields terminated by ',';

区切りの改行コードを指定するには、”LINES TERMINATED BY”で指定します。

fields terminated by ',' LINES TERMINATED BY '\r\n';

ダブルクォーテーションで囲まれたデータの入出力すには、”ENCLOSED BY ‘”‘”を付加します。

fields terminated by ',' ENCLOSED BY '"';

データをCSV(Excel)で入出力する方法

CSVに出力(エクスポート)する方法

以下のように、データベースと出力ファイルを指定すれば出力されます。

mysql> set character set sjis;
mysql> select * from database into outfile "/tmp/dump.csv"
fields terminated by ',' enclosed by '"' lines terminated by '\r\n';

CSVから入力(インポート)する方法

以下のように、入力ファイルとデータベースのテーブルを指定すれば入力できます。

mysql> set character set sjis;
mysql> load data (local) infile "/tmp/dump.csv" into table tablename
fields terminated by ',' enclosed by '"' lines terminated by '\r\n';

入れ替える場合は、以下のように指定します。

mysql> set character set sjis;
mysql> load data (local) infile "/tmp/dump.csv" replace into table tablename
fields terminated by ',' enclosed by '"' lines terminated by '\r\n';

MySQLの小技

上下の何が違うのか詳細を把握していない、というかまだうまく言っていないので何とも言えないんだけど、
ERROR 1046 (3D000): No database selected
と怒られてしまう。データベースは最初の「select * from データベース名」で指定しているはずなんだけどな…。

0905追記
→解決。

よく考えてみれば当たり前の話で、CSVは単一シートだからテーブル一つ分しか出力できない。つまりまずデータベースを選び(use database-name)、その中でテーブル名を指定して実行する
select * from table名 into outfile・・・
のが正解だった。

コメント

2 Responses to MySQLからcsvで出力する方法

トラックバックURL:

Avatar

Koshizo2

11月 17th, 2011 at 4:44 AM

MySQLからcsvで出力する方法 | Weblogy http://t.co/g8CvD5F8

Avatar

koshizo2

11月 17th, 2011 at 1:44 PM

MySQLからcsvで出力する方法 | Weblogy http://t.co/g8CvD5F8

Comment Form

About this blog

ここは、SE見習いである私ことdaceloが、日夜習得していくシステム関連の備忘録、phpやWordPressTipsのネタ、あるいはSEOやWebマーケティング関連の雑感を投稿するブログです。 平日は大体毎日投稿しています。土日は休業日です。

カテゴリー

カテゴリー

アーカイブ