• ベストアンサー

CSVの特定のフィールドをインポート

load data local infileでcsvをインポートしているのですが ヘルプなどを見ても特定のフィールドのみを選択する方法がよく分かりません たとえば csv:フィールドA、フィールドB、フィールドC、フィールドD、フィールドE、フィールドF MySQL:カラム1、カラム2、カラム3、カラム4、カラム5 だとします、それを フィールドA→カラム2 フィールドC→カラム3 フィールドD→カラム4 フィールドF→カラム5 という風に選択したいのですがどういう風に指定したらいいのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.3

オプションは順に記述する必要があるので、後ろではなく、変数指定の前(テーブル名の後)に記述する必要があります。 LOAD DATA INFILE 'file_name' INTO TABLE table_name FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '¥r¥n' IGNORE 1 LINES (@fieldA, @fieldB, @fieldC, @fieldD, @fieldE, @fieldF) SET col2=@fieldA, col3=@fieldC, col4=@fieldD, col5=@fieldF; No1 の方がマニュアルへのリンクを張ってくれているので、一度目を通されるといいと思います。

bigin888
質問者

お礼

ありがとうございます、本当に助かりました。

その他の回答 (2)

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.2

LOAD DATA INFILE 'file_name' INTO TABLE table_name (@fieldA, @fieldB, @fieldC, @fieldD, @fieldE, @fieldF) SET col2=@fieldA, col3=@fieldC, col4=@fieldD, col5=@fieldF;

bigin888
質問者

補足

回答ありがとうございます。 この後ろに FIELDS TERMINATED BY ';' ENCLOSED BY '"' LINES TERMINATED BY '¥r¥n' IGNORE 1 LINES; を付けたら以下のエラーになります、どうしてでしょうか? ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FIELDS TERMINATED BY ';' ENCLOSED BY '"'

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

LOAD DATA INFILE 'file.txt' INTO TABLE t1 (column1, @dummy, column2, @dummy, column3); と公式にかいてありますね (捨てたいデータは変数にわりあてて利用しない)

参考URL:
http://dev.mysql.com/doc/refman/5.1/ja/load-data.html

関連するQ&A