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

क्या mysql एक csv या अन्य txt फ़ाइल को एक कॉलम में आयात कर सकता है?

हाँ, आप इसे कुछ चरणों में कर सकते हैं:

पहले एक अस्थायी स्टेजिंग टेबल बनाएं (इसे import call कहते हैं) ) एक स्तंभ के साथ जो स्रोत डेटा फ़ाइल की पंक्तियों के रूप में पंक्तियों को धारण करेगा

CREATE TABLE `import` (
  `line` varchar(512) DEFAULT NULL
);

और फ़ाइल से तालिका में डेटा लोड करें

LOAD DATA INFILE '/path/to/your/file.txt'
INTO TABLE import
FIELDS TERMINATED BY '\n'
LINES  TERMINATED BY '\n'

दूसरा यह मानते हुए कि आपके पास एक लक्ष्य तालिका है (इसे words कहते हैं ) जो कुछ इस तरह दिखता है

CREATE TABLE `words` (
  `word` varchar(64) DEFAULT NULL
);

हम प्रत्येक पंक्ति को शब्दों में विभाजित कर सकते हैं और उन्हें words . में सम्मिलित कर सकते हैं एक प्रश्न के साथ तालिका

INSERT INTO words (word)
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(line, ' ', n.n), ' ', -1) word
  FROM import CROSS JOIN 
(
   SELECT a.N + b.N * 10 + 1 n
     FROM 
    (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
   ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
    ORDER BY n
) n
 WHERE n.n <= 1 + (LENGTH(line) - LENGTH(REPLACE(line, ' ', '')))
 ORDER BY n.n

नोट:

  • मानना ​​यह है कि आपके शब्द बिल्कुल एक स्थान से अलग हो गए हैं
  • यह क्वेरी 100 शब्दों में विभाजित होगी। यदि आपको अधिक या कम की आवश्यकता है तो आप आंतरिक सबक्वायरी को संपादित करके एक सीमा समायोजित कर सकते हैं या यदि नियमित रूप से आयात करते हैं तो इसके बजाय स्थायी मिलान (संख्या) तालिका का उपयोग करने पर विचार करें।

तीसरा स्टेजिंग टेबल को गिराएं या काटें (यदि आप इसे फिर से अधिक फ़ाइलों को आयात करने के लिए उपयोग करेंगे)

DROP TABLE import;

यह रहा SQLFiddle डेमो जो चरण दो दिखाता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाग्रिडव्यू को संपादित करने के लिए और इसे सी # का उपयोग कर डेटाबेस तालिका में भी सहेजें

  2. रिकॉर्ड को दो कॉलम में विभाजित करें

  3. श्रेणी के आधार पर परिणाम लूप करें लेकिन केवल एक बार श्रेणी दिखाएं

  4. वर्चर प्रकार को फ़िल्टर करने के लिए एक लंबी प्रकार की संख्या का उपयोग करते समय MySQL अतिरिक्त रिकॉर्ड लौटाता है

  5. एक MySQL डेटाबेस बैक-एंड के फ्रंट-एंड के रूप में MS Access का उपयोग करने में समस्याएँ?