• 締切済み

CSV fileを指定してSQLへimport

現在どうにかしてCSV fileのある一定の行と列を除いて SQLへimport出来ないかと困っています。 内容は: Excelで記入欄を作り他の人に記入してもらい 記入欄に記入してもらった情報を 反映させたいSQLのテーブル反映させたい。 環境 Win全般 dbisql Notepadに書いたtest-sql構文です --## test-import insert into test.test_def(obj_num, name_1, name_2, etc_1, etc_2) --##ここで指定したいSQLテーブルを指定し LOAD DATA INFILE 'd:\\test\\test.csv' --##ここで読み込ませたいCSVファイルを指定し FIELDS TERMINATED BY ',', LINES TERMINATED BY '\r\n' --##ここでCSVの形式を認識させ with(a,"b" filler, ・・・・と この辺で行き詰っています。。。 列1と行Aには入力してもらいたい説明を入力したいです。 (importしたくない列と行になります) 列2以降の行Bから行Gまでの5つの情報をimportしたいという状況です。 (列3、列4と次々B、C、D、E、F、Gに入力してもらう) 状況が解り難かったらすみません。 よろしくお願いします。

みんなの回答

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

1.excel で先に必要データ部分のみ選択出力するか 2.TEMPORARY TABLE に一旦全部読み込んでから、本番tableへselectしたデータをinsertするか のどちらかでしょう。 それぞれ 1.マクロ記録機能を用いて、「範囲選択→選択範囲書き出し」の実行過程を記録して、適宜マクロ編集すれば、必要部分書きだしマクロが出来るのでは? 2.3つのsql文でいけるでしょう。 CREATE TEMPORARY TABLE `ttt` ( /* 項目リスト,カラム型は本番tableに合わせる */ a text,b text, c int, d double ); LOAD DATA LOCAL INFILE 'xx.csv' INTO TABLE `ttt` FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'; INSERT INTO `honban` (column list) select /*対応項目リスト*/c,d from `ttt`;

  • dell_OK
  • ベストアンサー率13% (766/5720)
回答No.2

なるほど。 ちょっと検索してみました。 http://dev.mysql.com/doc/refman/4.1/ja/load-data.html http://dev.mysql.com/doc/refman/5.1/ja/load-data.html 「IGNORE number LINES オプションは、ファイルの先頭にある行を無視させる目的で使用します。 たとえば、次のように、IGNORE 1 LINES と指定することによって、カラム名が含まれた最初のヘッダ行(1 行)をスキップさせることができます。」 とあります。 質問者様がどのようにご理解されているのかわかりませんが、 一般的にExcelで、 画面上部に「A」「B」「C」と横に並んでいるものを縦に向かって見る方向を「列」と言い、 画面左部に「1」「2」「3」と縦に並んでいるものを横に向かって見る方向を「行」と言います。 一番左上のセルは「1行目のA列」と呼びます。 ※数字は行、アルファベットは列です。 「IGNORE 1 LINES」では、この1行目を読み込みません。 fillerと言うのが、列を読み込まないものだと思うのですが、 上記URL中にはかかれていなかったので、私にはわかりません。 どうでしょうか。

  • dell_OK
  • ベストアンサー率13% (766/5720)
回答No.1

インポートする時の指定方法はわかりませんが、 ExcelでCSVファイルとして保存する時に、 1行目とA列を削除して出力するのはどうでしょうか。 削除するのが問題になるようでしたら、 インポートしたい範囲だけを保存するようなマクロを組まれたらいいと思います。

japin
質問者

お礼

dell_OKさん、ご回答ありがとうございます。 "a" filler,と同じように列の"1" filler,のような事が出来れば良いのですが。。。 インポートしたい範囲だけを保存するようなマクロの組み方 が解らないので勉強しようと思います。 ありがとうございました。

関連するQ&A