2010-07-13 13 views
7

मेरे पास कुछ CSV फ़ाइलें हैं जिन्हें मैं अपने डेटाबेस में लोड करना चाहता हूं, लेकिन CSV फ़ाइल में मेरे डेटाबेस की तुलना में कई और कॉलम हैं। मैं अपने डेटाबेस में सीएसवी फ़ाइल से केवल चयनित कॉलम कैसे आयात करूं?MySQL आयात CSV डेटा - कुछ सीएसवी कॉलम को अनदेखा करें

बहस के लिए, मान लीजिए कि सीएसवी में कॉलम शीर्षक ए से ज़ेड के साथ एक हेडर पंक्ति है, और उसके बाद कॉलम ए से ज़ेड के लिए मूल्यों के साथ दो मिलियन पंक्तियां हैं। मान लीजिए कि मेरी तालिका में MyTest में बी, एन और एस शामिल हैं, इसलिए मैं केवल सीएसवी फ़ाइल से myTest में कॉलम बी, एन और एस आयात करना चाहता हूं।

मैं करने की योजना बना रहा था:

mysqlimport --local --columns=B,N,S --ignore-lines=1 --delete --default-character-set=latin1 --fields-optionally-enclosed-by=\" --fields-terminated-by=\, --lines-terminated-by=\r\n myDb myTest.csv 

लेकिन वह नहीं स्तंभ बी के मूल्यों के साथ, एन और एस मैं जैसे स्तंभ एक के मूल्यों, बी और सी, के साथ पंक्ति बी, एन और एस भरता है चाहता था।

कोई सुझाव मैं इसे केवल बी, एन और एस आयात कैसे कर सकता हूं?

उत्तर

14

आपको --columns=B,N,S को बदलने की आवश्यकता है और उन सभी कॉलम को छोड़ने के लिए पैरामीटर जोड़ें जिन्हें आपको आवश्यकता नहीं है।

उदाहरण के लिए, क्रम में 1, 4 और 7 वीं स्तंभ उपयोग का उपयोग करने के:

--columns=B,@x,@x,N,@x,@x,S 

यह @x पैरामीटर के लिए 2nd, 3rd, 5 और 6 स्तंभ भेज देंगे।

रेफरी: http://dev.mysql.com/doc/refman/5.1/en/mysqlimport.html

+0

आपको बहुत धन्यवाद, यह चाल है! मैं उस सुबह उस लिंक को पढ़ रहा था लेकिन इस तरह से ऐसा करने का विचार नहीं किया था :-) – niklassaers

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