2010-12-28 6 views
6

मैं SQL में बहुत अनुभवहीन हूं, इसलिए मेरी समस्या का एक आसान समाधान होना चाहिए: मैं एक अल्पविराम से अलग फ़ाइल में एक तालिका का चयन कर रहा हूं, और प्रकार के कॉलम टेक्स्ट में न्यूलाइन वर्ण हैं, इसलिए जब मैं एक्सेल में अपना सीएसवी आयात करने का प्रयास करता हूं, तो यह एक न्यूलाइन कैरेक्टर के बाद टेक्स्ट के प्रत्येक टुकड़े को अलग पंक्ति बनाता है।MySQL में एक तालिका को निर्यात करने वाले कॉलम के साथ

यहाँ मेरी क्वेरी है:

SELECT * FROM `db`.`table` INTO OUTFILE 'c:\\result.txt' FIELDS TERMINATED BY ',' 
ESCAPED BY '\\' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' ; 

और फिर Excel में मैं एक अल्पविराम से अलग फ़ाइल जो स्तंभ न्यू लाइन पात्रों के साथ पाठ है कि में समस्या आ जाती के रूप में आयात करते हैं।

किसी भी मदद की सराहना की जाती है!

उत्तर

4

बस डबल कोट्स में सबकुछ संलग्न करें।

SELECT * FROM db.table INTO OUTFILE 'c:/result.txt' FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; 
+0

अगर मैं एक पाठ क्षेत्र एक मूल्य "abc, बीसीडी" है कि इस पाठ क्षेत्र दो पाठ में पार्स किया जाएगा एबीसी खेतों और बीसीडी के बाद से वहाँ एक अल्पविराम के अंदर है। एक उद्धरण संलग्न क्षेत्र के अंदर – Lenik

+1

कॉमा एक्सेल द्वारा अनदेखा किया जाना चाहिए। एक्सेल में आयात करते समय सुनिश्चित करें कि आपके पास टेक्स्ट क्वालीफायर सेट है " – DeveloperChris

1

नोवीकोव सही है लेकिन आप निर्यात करते समय नए लाइन वर्णों से भी बच सकते हैं।

SELECT REPLACE(`fieldname1`,'\n','\\n'),`fieldname2` FROM db.table INTO OUTFILE 'c:/result.txt' FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; 

यह तो पाठ स्ट्रिंग के साथ सभी नए लाइन वर्ण का स्थान ले लेगा '\ n' यह नहीं है कि तुम क्या उत्पादन में हालांकि चाहते हो सकता है।

डीसी

इस मामले में
संबंधित मुद्दे