2012-05-12 7 views
0

私はCSVを使用してmysqlデータベースにExcelファイルをインポートしようとしています。CSVからインポートされたデータが間違ったmysqlカラムに挿入される

DB構造:CSVの

CREATE TABLE IF NOT EXISTS `sales_products` (
    `productID` int(11) NOT NULL auto_increment, 
    `name` varchar(200) NOT NULL default '', 
    `categoryID` int(11) NOT NULL default '0', 
    `brandID` int(11) NOT NULL default '0', 
    `seriesID` int(11) NOT NULL, 
    `info` text NOT NULL, 
    `img` text NOT NULL, 
    `date_added` date NOT NULL default '0000-00-00', 
    `price` double NOT NULL default '0', 
    `special` varchar(200) NOT NULL, 
    PRIMARY KEY (`productID`), 
    FULLTEXT KEY `name` (`name`,`info`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='All products' AUTO_INCREMENT=21341 ; 

最初の行:私は次の列で、 'LOAD DATAを使用してインポートするCSV' を使用

Bottle opener (No.:015005);1;1;0;Blue, metallic;801001.gif;12-05-2012;0.95 

:名前、カテゴリID、brandID、seriesID、情報、 img、date_added、price、special

これはエラーなしで実行されますが、情報フィールドは空白のままです。情報は「img」フィールドに、imgはdate_addedに入れられます。情報フィールドはスキップされます。何故ですか?あなたは、タブ区切りのテキストとしてファイルを保存する場合、私は(これはあなたがスプレッドシートプログラムでそれを修正することができると仮定している)を発見した

+3

コンマが入っていますか?あなたは、mysqlにカンマがフィールドデリミタではないことを伝える必要があります。あるいは、excelをCSVとしてエクスポートするときに文字列の周りにクォートデリミタを使用する必要があります。例えば"Blue、metallic" –

+0

インポートのデフォルトでは、フィールド区切り文字としてセミコロンが使用されます。なぜそれは、フィールドデリミタであると思いますか?また、それはinfoフィールドに 'Blue'を、imgフィールドに 'metallic'を置くので、間違っているとは限りません。 – Dauntless

+1

あなたが別のものを指定していても、デリミタとして扱いますが、わかりませんが、繰り返しテーマです。あなたは引用符を試しましたか? –

答えて

0

が、これはコンマを誤認の問題を回避します。

関連する問題