2012-05-12 55 views
0

我想使用CSV將excel文件導入到我的mysql數據庫中。從CSV導入的數據被放入錯誤的mysql列

DB結構:

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 ; 

CSV的第一行:

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

我使用 '導入CSV使用LOAD DATA',與下面的列:姓名,的categoryID,brandID,seriesID,資訊, img,date_added,價格,特價

它運行沒有錯誤,但信息字段留空,信息被放到'img'字段,img到date_added等,因此它跳過信息字段。這是爲什麼?

+3

因爲它有逗號嗎?您需要告訴mysql逗號不是字段分隔符,或者在將excel作爲csv導出時,在字符串周圍使用引號分隔符。例如「藍色,金屬」 –

+0

導入的默認值以分號作爲字段分隔符。爲什麼會認爲a,是字段分隔符?此外,這將在信息字段中添加'藍色',在img字段中添加'金屬',這樣就不會出現問題。 – Dauntless

+1

不確定,但即使您指定了另一個分隔符,也將其視爲分隔符,這是一個反覆出現的主題。你是否試過報價? –

回答

0

我發現如果您將文件另存爲製表符分隔的文本(假設您可以使用電子表格程序對其進行修改),這將避免錯誤識別逗號的問題。