2010-03-05 12 views
21

मैं एक MySQL क्वेरी परिणाम को स्थानीय CSV फ़ाइल में कैसे संग्रहीत करूं? मुझे रिमोट मशीन तक पहुंच नहीं है।मैं एक MySQL क्वेरी परिणाम को स्थानीय CSV फ़ाइल में कैसे संग्रहीत करूं?

+0

फिर आपके पास किस प्रकार की पहुंच है? –

+0

केवल Acess – joe

+4

पढ़ा क्या आपको कभी इसका समाधान मिला? "आउटफाइल में" डीबी सेरर पर फाइल लिखती है, स्थानीय मशीन नहीं। –

उत्तर

-13

आप कर कोशिश कर सकते हैं:

SELECT a,b,c 
FROM table_name 
INTO OUTFILE '/tmp/file.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 

हम यहाँ OUTFILE खंड का उपयोग एक CSV फ़ाइल में उत्पादन स्टोर करने के लिए।
हम उन क्षेत्रों के मूल्यों को संभालने के लिए फ़ील्ड को डबल-कोट्स में संलग्न करते हैं जिनमें अल्पविराम है और हम फ़ील्ड को अल्पविराम से अलग करते हैं और नई लाइन का उपयोग करके अलग-अलग लाइन को अलग करते हैं।

+3

अगर मुझे लगता है कि जेनरेट की गई फ़ाइल – joe

+0

स्टोर करने के लिए रिमोट मशीन में एक्सेस नहीं है, तो आप स्थानीय मशीन पर mysql-client का उपयोग कर सकते हैं, रिमोट डीबी सर्वर से कनेक्ट कर सकते हैं और फिर स्थानीय मशीन पर परिणाम संग्रहीत करने के लिए उपर्युक्त क्वेरी जारी कर सकते हैं। – codaddict

+0

या .. मुझे उस मुद्दे का सामना करना पड़ रहा है। इसे कैसे हल करें? – joe

50

आपको कमांड लाइन निष्पादन '-e' ध्वज का उपयोग करना होगा।

$> /usr/local/mysql/bin/mysql -u user -p -h remote.example.com -e "select t1.a,t1.b from db_schema.table1 t1 limit 10;" > hello.txt 

क्वेरी से उत्पादन के साथ अपने वर्तमान कार्यशील निर्देशिका में एक स्थानीय hello.txt फाइल उत्पन्न करेगा।

+1

सभी उपयोग मामलों के लिए अच्छा है !! – instanceOfObject

+4

यदि आप अपनी क्वेरी को किसी फ़ाइल में सहेजते हैं तो आप इसे बदल सकते हैं: $>/usr/local/mysql/bin/mysql -u user -p -h remote.example.com hello.txt –

+0

के लिए मैं केवल 1000 पंक्तियों तक ही सीमित हूं। क्या सभी डेटा प्राप्त करने का कोई तरीका है? – ShikharDua

-6

MySQL क्वेरी चलाएं तरह

नीचे
SELECT order_id,product_name,qty FROM orders INTO OUTFILE '/tmp/orders.csv' 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' 

यह आवेदन की tmp फ़ोल्डर में csv फ़ाइल पैदा करेगा अपने App से सीएसवी उत्पन्न करने के लिए।

फिर आप हेडर के माध्यम से फ़ाइल भेजने के लिए तर्क जोड़ सकते हैं।

सुनिश्चित करें कि डेटाबेस उपयोगकर्ता को दूरस्थ फ़ाइल-सिस्टम में लिखने की अनुमति है।

0

मैं इस समस्या का सामना करना पड़ रहा हूँ और मैं एक समाधान के लिए कुछ समय पढ़ने किया गया है: एक्सेल में आयात करने, उपयोग में आयात करने, पाठ फ़ाइल के रूप में सहेजना ...

मुझे लगता है कि विंडोज़ लिए सबसे अच्छा समाधान है निम्नलिखित:

  • कमांड डालने का उपयोग करें ... "परिणाम" तालिका बनाने के लिए चुनें। आदर्श परिदृश्य स्वचालित रूप से इस परिणाम तालिका के फ़ील्ड बनाने के लिए हो सकता है, लेकिन यह संभव नहीं है MySQL
  • डेटाबेस
  • डेटा निकालने के लिए एक्सेस या एक्सेल का उपयोग करें और फिर सहेजें या संसाधित करें जिस तरह से आप चाहते हैं

यूनिक्स/लिनक्स के लिए मुझे लगता है कि सबसे अच्छा समाधान इस -e विकल्प tmarthal उपयोग कर रहे हैं इससे पहले कि ने कहा कि और awk की तरह एक प्रोसेसर के माध्यम से उत्पादन की प्रक्रिया एक उचित प्रारूप (सीएसवी, एक्सएमएल प्राप्त करने के लिए, जो कुछ)।

1

mysql

की concat समारोह
mysql -u <username> -p -h <hostname> -e "select concat(userid,',',surname,',',firstname,',',midname) as user from dbname.tablename;" > user.csv 

का प्रयोग करें आप पहली पंक्ति जो स्तंभ नाम "उपयोगकर्ता" शामिल हटा सकते हैं।

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