MySQL क्वेरीले डुप्लिकेट डाटा कसरी ह्यान्डल गर्छ?डुप्लिकेट डाटा स्टेटमेन्ट हटाउन फिल्टर गर्नुहोस्

MySQLप्रश्नहरूले डुप्लिकेट डाटा कसरी ह्यान्डल गर्छ?डुप्लिकेट डाटा स्टेटमेन्ट हटाउन फिल्टर गर्नुहोस्

MySQL डुप्लिकेट डाटा ह्यान्डल गर्दै

केही MySQL डाटा तालिकाहरूमा नक्कल रेकर्डहरू हुन सक्छन्। केही अवस्थामा, हामी नक्कल डाटाको अस्तित्वलाई अनुमति दिन्छौं, तर कहिलेकाहीँ हामीले यी नक्कल डाटा मेटाउन पनि आवश्यक छ।

यस अध्यायमा, हामी डेटा तालिकामा डुप्लिकेट डाटा कसरी रोक्ने र डाटा तालिकामा डुप्लिकेट डाटा कसरी मेटाउने भनेर प्रस्तुत गर्नेछौं।


तालिकाहरूमा डुप्लिकेट डाटा रोक्नुहोस्

तपाईंले MySQL डाटा तालिकामा निर्दिष्ट क्षेत्र सेट गर्न सक्नुहुन्छ प्राथमिक कुञ्जी वा UNIQUE (अद्वितीय) डेटाको विशिष्टता सुनिश्चित गर्न सूचकांक।

एउटा उदाहरण प्रयास गरौं: तलको तालिकामा कुनै पनि अनुक्रमणिका र प्राथमिक कुञ्जीहरू छैनन्, त्यसैले तालिकाले धेरै डुप्लिकेट रेकर्डहरूलाई अनुमति दिन्छ।

CREATE TABLE person_tbl
(
    first_name CHAR(20),
    last_name CHAR(20),
    sex CHAR(10)
);

यदि तपाइँ तालिकामा पहिलो_नाम र अन्तिम_नाम क्षेत्रहरू सेट गर्न चाहनुहुन्छ भने, डेटा दोहोर्याउन सकिँदैन, तपाइँ डेटाको विशिष्टता सेट गर्न डबल प्राथमिक कुञ्जी मोड सेट गर्न सक्नुहुन्छ। यदि तपाइँ डबल प्राथमिक कुञ्जी सेट गर्नुहुन्छ भने, त्यो कुञ्जीको पूर्वनिर्धारित मान। NULL हुन सक्दैन, तर NOT NULL मा सेट गर्न सकिन्छ।निम्नानुसार:

CREATE TABLE person_tbl
(
   first_name CHAR(20) NOT NULL,
   last_name CHAR(20) NOT NULL,
   sex CHAR(10),
   PRIMARY KEY (last_name, first_name)
);

यदि हामीले एक अद्वितीय अनुक्रमणिका सेट गर्यौं भने, नक्कल डेटा सम्मिलित गर्दा, SQL कथन सफलतापूर्वक कार्यान्वयन गर्न असफल हुनेछ र त्रुटि फ्याँक्नेछ।

INSERT IGNORE INTO र INSERT INTO बीचको भिन्नता यो हो कि INSERT IGNORE ले डाटाबेसमा पहिले नै अवस्थित डाटालाई बेवास्ता गर्छ। यदि डाटाबेसमा कुनै डाटा छैन भने, यसले नयाँ डाटा घुसाउनेछ, र यदि त्यहाँ डाटा छ भने, यसले यो डाटा छोड्नेछ।यसरी, डाटाबेसमा अवस्थित डाटा सुरक्षित गर्न सकिन्छ, र अन्तरमा डाटा सम्मिलित गर्ने उद्देश्य हासिल गर्न सकिन्छ।

निम्न उदाहरणले INSERT IGNORE INTO को प्रयोग गर्दछ, जसले त्रुटि बिना कार्यान्वयन गर्दछ र डेटा तालिकामा डुप्लिकेट डेटा सम्मिलित गर्दैन:

mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)
    -> VALUES( 'Jay', 'Thomas');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)
    -> VALUES( 'Jay', 'Thomas');
Query OK, 0 rows affected (0.00 sec)

INSERT ignore INTO डाटा सम्मिलित गर्दा, रेकर्डको विशिष्टता सेट गरिसकेपछि, यदि नक्कल डाटा सम्मिलित गरियो भने, कुनै त्रुटि फिर्ता हुने छैन, तर केवल चेतावनी फिर्ता गरिनेछ।र REPLACE INTO मा प्राथमिक वा अद्वितीय रेकर्ड छ भने, पहिले यसलाई मेटाउनुहोस्।नयाँ रेकर्ड घुसाउनुहोस्।

तपाईको डेटाको विशिष्टता सेट गर्ने अर्को तरिका भनेको यो जस्तै अद्वितीय अनुक्रमणिका थप्नु हो:

CREATE TABLE person_tbl
(
   first_name CHAR(20) NOT NULL,
   last_name CHAR(20) NOT NULL,
   sex CHAR(10)
   UNIQUE (last_name, first_name)
);

तथ्याङ्क डुप्लिकेट डाटा

तल हामी तालिकामा first_name र last_name को डुप्लिकेट रेकर्डहरूको संख्या गणना गर्नेछौं:

mysql> SELECT COUNT(*) as repetitions, last_name, first_name
    -> FROM person_tbl
    -> GROUP BY last_name, first_name
    -> HAVING repetitions > 1;

माथिको क्वेरी कथनले person_tbl तालिकामा डुप्लिकेट रेकर्डहरूको संख्या फिर्ता गर्नेछ।सामान्यतया, डुप्लिकेट मानहरूको लागि क्वेरी गर्न, निम्न गर्नुहोस्:

  • कुन स्तम्भमा सम्भावित डुप्लिकेट मानहरू छन् भनी निर्धारण गर्नुहोस्।
  • ती स्तम्भहरूलाई सूचीबद्ध गर्न स्तम्भ चयन सूचीमा COUNT(*) प्रयोग गर्नुहोस्।
  • GROUP BY खण्डमा सूचीबद्ध स्तम्भहरू।
  • HAVING क्लजले 1 भन्दा बढी दोहोरिनेहरूको संख्या सेट गर्दछ।

डुप्लिकेट डाटा फिल्टर गर्नुहोस्

यदि तपाइँलाई अद्वितीय डेटा पढ्न आवश्यक छ भने, तपाइँ नक्कल डाटा फिल्टर गर्न SELECT कथनमा DISTINCT कुञ्जी शब्द प्रयोग गर्न सक्नुहुन्छ।

mysql> SELECT DISTINCT last_name, first_name
    -> FROM person_tbl;

तपाइँ तालिकाबाट अद्वितीय डेटा पढ्नको लागि GROUP BY प्रयोग गर्न सक्नुहुन्छ:

mysql> SELECT last_name, first_name
    -> FROM person_tbl
    -> GROUP BY (last_name, first_name);

डुप्लिकेट डाटा

यदि तपाइँ डाटा तालिकामा डुप्लिकेट डाटा मेटाउन चाहनुहुन्छ भने, तपाइँ निम्न SQL कथन प्रयोग गर्न सक्नुहुन्छ:

mysql> CREATE TABLE tmp SELECT last_name, first_name, sex
    ->                  FROM person_tbl;
    ->                  GROUP BY (last_name, first_name, sex);
mysql> DROP TABLE person_tbl;
mysql> ALTER TABLE tmp RENAME TO person_tbl;

निस्सन्देह, तपाईले तालिकामा डुप्लिकेट रेकर्डहरू मेटाउन डेटा तालिकामा INDEX (सूचकांक) र PRIMAY KEY (प्राथमिक कुञ्जी) पनि थप्न सक्नुहुन्छ।निम्नानुसार विधिहरू:

mysql> ALTER IGNORE TABLE person_tbl
    -> ADD PRIMARY KEY (last_name, first_name);

आशा चेन वेइलियाङ ब्लग ( https://www.chenweiliang.com/ ) साझा गर्नुभयो "कसरी MySQL क्वेरी र डुप्लिकेट डाटा ह्यान्डल गर्छ?फिल्टरिङ र डुप्लिकेशन स्टेटमेन्टहरू" तपाईंलाई मद्दत गर्नेछ।

यस लेखको लिङ्क साझा गर्न स्वागत छ:https://www.chenweiliang.com/cwl-499.html

नवीनतम अपडेटहरू प्राप्त गर्न चेन वेइलियाङको ब्लगको टेलिग्राम च्यानलमा स्वागत छ!

🔔 च्यानल शीर्ष डाइरेक्टरीमा बहुमूल्य "ChatGPT सामग्री मार्केटिङ एआई उपकरण उपयोग गाइड" प्राप्त गर्ने पहिलो बन्नुहोस्! 🌟
📚 यो गाइडले ठूलो मूल्य समावेश गर्दछ, 🌟यो दुर्लभ अवसर हो, यसलाई नछुटाउनुहोस्! ⏰⌛💨
मन परे लाइक र सेयर गर्नुहोस !
तपाइँको साझा र लाइक हाम्रो निरन्तर प्रेरणा हो!

 

评论 评论

तपाईको इ-मेल ठेगाना प्रकाशित हुँदैन। आवाश्यक फिल्डहरू प्रयोग भएको छ * लेबल

शीर्षमा स्क्रोल गर्नुहोस्