संपादित करें: वेरिएबल (केवल स्थिर मान) का उपयोग किए बिना डेटा (जैसे एक टेबल) को फ़ाइल में सहेजना
-- folder_path could could be like => c:/users/sami
-- choose the directory/folder already available in system
-- and make sure you have access to write the file there
SELECT * INTO OUTFILE 'folder_path/filename.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
FROM database.tableName;
अब चर का उपयोग कर रहे हैं
जब भी आपको sql में एक वेरिएबल नाम का उपयोग करना होता है, तो आपको डायनेमिक sql की आवश्यकता होती है (जो केवल संग्रहीत प्रक्रियाओं में लागू होती है, न तो साधारण sql क्वेरी में और न ही ट्रिगर्स या फ़ंक्शंस में)
SET @OutputPath := 'Users/jo/Documents'; //or any folder_path
SET @fullOutputPath := CONCAT(@OutputPath,'/','filename.csv');
SET @fullOutputPath2 := CONCAT(@OutputPath,'/','filename2.csv');
set @q1 := concat("SELECT * INTO OUTFILE ",@fullOutputPath,
" FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
FROM database.tableName");
set @q2 := concat("SELECT * INTO OUTFILE ",@fullOutputPath2,
" FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
FROM database.tableName2");
prepare s1 from @q1;
execute s1;deallocate prepare s1;
prepare s1 from @q2;
execute s1;deallocate prepare s1;
जैसा कि आपके पास दोनों '
. थे और "
आपकी क्वेरी में पहले से ही है, इसलिए मैंने "
. का उपयोग करके आपकी क्वेरी को जोड़ दिया है और आपके मूल "
. से बचने के लिए \ का उपयोग किया एक शाब्दिक चरित्र के रूप में इसका उपयोग सुनिश्चित करने के लिए और संयोजन के लिए उपयोग नहीं किया जाता है
मैंने अभी-अभी variable
. के उपयोग के बारे में बताया है एसक्यूएल में। पहले आपको यह सुनिश्चित करना चाहिए कि आपकी क्वेरी शीर्ष पर उदाहरण की तरह काम करती है या नहीं (चर का उपयोग किए बिना)
निष्कर्ष: यदि आपकी उपरोक्त क्वेरी ठीक काम करती है तो मेरा बताया गया गतिशील एसक्यूएल भी काम करेगा क्योंकि आप इसे किसी संग्रहीत प्रक्रिया में उपयोग कर रहे हैं।