2012-05-12 2 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 ; 

첫 번째 줄 :

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

나는 다음과 같은 열이, 'LOAD 데이터를 사용하여 가져 오기 CSV'를 사용 : 이름, 카테고리 ID, brandID, seriesID, 정보, img, date_added, price, special

오류없이 실행되지만 정보 필드는 공백으로 남으며 정보는 'img'필드에 입력되고 img는 date_added에 입력됩니다. 따라서 정보 필드는 건너 뜁니다. 왜 그런가요?

+3

쉼표가 포함 되었습니까? 쉼표는 필드 분리 문자가 아니거나 csv로 Excel을 내보낼 때 문자열 주위에 인용 구분 기호를 사용한다는 것을 mysql에 알려줘야한다. 예 : "파란색, 금속색" –

+0

가져 오기 기본값은 필드 구분 기호로 세미콜론을 사용합니다. 왜 그것은 a가 필드 분리 문자라고 생각합니까? 또한 정보 필드에 'Blue'를 넣고 img 필드에 'metallic'을 넣어서 잘못 될 수는 없습니다. – Dauntless

+1

확실하지는 않지만 치료하는 경우, 다른 구분자를 지정 했더라도 '구분자'는 되풀이되는 주제입니다. 따옴표를 써 보셨습니까? –

답변

0

파일을 탭으로 구분 된 텍스트로 저장하면 (스프레드 시트 프로그램으로 수정할 수 있다고 가정 함) 쉼표를 잘못 식별하는 문제를 피할 수 있습니다.

관련 문제