Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्या मैं mysql में OUTFILE निर्दिष्ट करने के लिए एक चर का उपयोग कर सकता हूं?

संपादित करें: वेरिएबल (केवल स्थिर मान) का उपयोग किए बिना डेटा (जैसे एक टेबल) को फ़ाइल में सहेजना

-- 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 . के उपयोग के बारे में बताया है एसक्यूएल में। पहले आपको यह सुनिश्चित करना चाहिए कि आपकी क्वेरी शीर्ष पर उदाहरण की तरह काम करती है या नहीं (चर का उपयोग किए बिना)

निष्कर्ष: यदि आपकी उपरोक्त क्वेरी ठीक काम करती है तो मेरा बताया गया गतिशील एसक्यूएल भी काम करेगा क्योंकि आप इसे किसी संग्रहीत प्रक्रिया में उपयोग कर रहे हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. शेल कमांड के माध्यम से mysql डेटाबेस को कैसे हटाएं

  2. ऑप्टिमाइज़ करते समय और SQL foreach में

  3. MySQL में क्रॉसस्टैब देखें?

  4. मैं sql_mode का विशिष्ट मान कैसे देख सकता हूं?

  5. एसक्यूएल जहां शर्त के साथ कॉलम पर न्यूनतम मान वाली केवल पंक्तियों का चयन करें