プロが教える店舗&オフィスのセキュリティ対策術

現在どうにかして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に入力してもらう)

状況が解り難かったらすみません。
よろしくお願いします。

A 回答 (3件)

インポートする時の指定方法はわかりませんが、


ExcelでCSVファイルとして保存する時に、
1行目とA列を削除して出力するのはどうでしょうか。
削除するのが問題になるようでしたら、
インポートしたい範囲だけを保存するようなマクロを組まれたらいいと思います。
    • good
    • 0
この回答へのお礼

dell_OKさん、ご回答ありがとうございます。

"a" filler,と同じように列の"1" filler,のような事が出来れば良いのですが。。。

インポートしたい範囲だけを保存するようなマクロの組み方
が解らないので勉強しようと思います。

ありがとうございました。

お礼日時:2008/12/15 00:04

なるほど。


ちょっと検索してみました。
http://dev.mysql.com/doc/refman/4.1/ja/load-data …
http://dev.mysql.com/doc/refman/5.1/ja/load-data …

「IGNORE number LINES オプションは、ファイルの先頭にある行を無視させる目的で使用します。
たとえば、次のように、IGNORE 1 LINES と指定することによって、カラム名が含まれた最初のヘッダ行(1 行)をスキップさせることができます。」
とあります。

質問者様がどのようにご理解されているのかわかりませんが、
一般的にExcelで、
画面上部に「A」「B」「C」と横に並んでいるものを縦に向かって見る方向を「列」と言い、
画面左部に「1」「2」「3」と縦に並んでいるものを横に向かって見る方向を「行」と言います。
一番左上のセルは「1行目のA列」と呼びます。
※数字は行、アルファベットは列です。

「IGNORE 1 LINES」では、この1行目を読み込みません。

fillerと言うのが、列を読み込まないものだと思うのですが、
上記URL中にはかかれていなかったので、私にはわかりません。
どうでしょうか。
    • good
    • 0

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`;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す