2011-12-12 12 views
9

मैं एक CSV फ़ाइल को एक MySQL डेटाबेस तालिका में आयात करने का प्रयास कर रहा हूं। सीएसवी पंक्तियों निम्नलिखित की तरह लग रहे:MySQL पर तालिका आयात करते समय CSV मानों के अंदर अल्पविराम से कैसे बचें?

"00602"," ","42042","15590","0","0","0","35","9","67","1978","20608","21434","3.1","54700","11384","31.3","30.4","32","18.382809","-67.186759","0","PR","Puerto Rico","U","","787","AGUADA","URB SAN CRISTOBAL","AGUADA","003","72","4","N","0060","","","10380","","Metro","Aguadilla-Isabela-San Sebastián PR","Aguadilla PR MSA","","","","N","0","0","0","0","","0","0","0","0","0","322569","0","","","5456","415","9577","V17136"," "," ","","" 
"00602"," ","42042","15590","0","0","0","35","9","67","1978","20608","21434","3.1","54700","11384","31.3","30.4","32","18.382809","-67.186759","0","PR","Puerto Rico","U","","787","AGUADA","COMUNIDAD LAS FLORES","AGUADA","003","72","4","N","0060","","","10380","","Metro","Aguadilla-Isabela-San Sebastián PR","Aguadilla PR MSA","","","","N","0","0","0","0","","0","0","0","0","0","322569","0","","","5456","415","9577","V17136"," "," ","","" 

etc... 

आप देख सकते हैं, खेतों डबल उद्धरण में संलग्न और अल्पविराम के द्वारा अलग कर रहे हैं। हालांकि कुछ पंक्तियाँ तो जैसे मूल्यों के अंदर अल्पविराम का है (पिछले मूल्य नोटिस):

"00501"," ","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","40.81518","-73.0455","25","NY","New York","N","","631","HOLTSVILLE","I R S SERVICE CENTER","SUFFOLK","103","36","5","Y","5602","5380","408","35620","35004","Metro","New York-Northern New Jersey-Long Island NY-NJ-PA","New York-Northern New Jersey-Long Island","Nassau-Suffolk, NY PMSA","Northeast","Middle Atlantic","N","7","0","0","0","B","0","0","0","0","0","18640775","2807500","","","0","1","1","V13916","U"," ","New York-Newark-Bridgeport, NY-NJ-CT-PA","Nassau-Suffolk, NY" 

यह कैसे मेरे इंपोर्ट स्टेटमेंट की तरह लग रहा है:

LOAD DATA INFILE '/file.csv' 
REPLACE INTO TABLE zipcodes 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n'; 

लेकिन यह काम नहीं कर रहा अपेक्षा के अनुरूप। उदाहरण के लिए, पहले डाला पंक्ति निम्नलिखित मूल्य के साथ एक स्तंभ है:

Nassau-Suffolk, NY""00501 

बजाय इसे किया जाना चाहिए था:

Nassau-Suffolk, NY 

और 00501 अगली पंक्ति पर पहले कॉलम मूल्य के रूप में सम्मिलित किया जाना चाहिए ।

सही करने के लिए मेरे एसक्यूएल को कैसे समायोजित करें? अपने उपयोग से मिलान करने के

LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name 
    FIELDS TERMINATED BY ',' ENCLOSED BY '"' 
    LINES TERMINATED BY '\r\n' 

अद्यतन, लेकिन महत्वपूर्ण हिस्सा OPTIONALLY ENCLOSED BY से OPTIONALLY ड्रॉप करने के लिए है:

उत्तर

16

MySQL Reference Manual से, बजाय निम्नलिखित विकल्पों का उपयोग करें।

+0

धन्यवाद, सही काम करता है। – TKpop

+0

हम इसे संग्रहीत प्रक्रिया में कैसे प्राप्त कर सकते हैं, क्योंकि एसपी में 'लोड डेटा' की अनुमति नहीं है? – Sawant

संबंधित मुद्दे