Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में NOT IN के साथ डुप्लिकेट से विशिष्ट शर्त वाले एकल मान को खोजना

MySQL में सबक्वेरी और NOT IN के साथ विशिष्ट मान को बाहर करके अद्वितीय ID खोजना

सबक्वेरी के साथ NOT IN का उपयोग करके उन ID को खोजा जा सकता है जिनमें कोई विशिष्ट मान (जैसे 'Chris') नहीं है।

व्यावहारिक उदाहरण

तालिका बनाना

mysql> CREATE TABLE DemoTable (
    Id INT,
    FirstName VARCHAR(100)
);

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable VALUES(100, 'Chris');
mysql> INSERT INTO DemoTable VALUES(100, 'Robert');
mysql> INSERT INTO DemoTable VALUES(100, 'Mike');
mysql> INSERT INTO DemoTable VALUES(100, 'Sam');
mysql> INSERT INTO DemoTable VALUES(101, 'David');
mysql> INSERT INTO DemoTable VALUES(101, 'Robert');
mysql> INSERT INTO DemoTable VALUES(210, 'Chris');
mysql> INSERT INTO DemoTable VALUES(210, 'Bob');
mysql> INSERT INTO DemoTable VALUES(210, 'Sam');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Chris     |
| 100  | Robert    |
| 100  | Mike      |
| 100  | Sam       |
| 101  | David     |
| 101  | Robert    |
| 210  | Chris     |
| 210  | Bob       |
| 210  | Sam       |
+------+-----------+

'Chris' नहीं रखने वाले विशिष्ट ID खोजने के लिए क्वेरी

mysql> SELECT DISTINCT Id FROM DemoTable 
WHERE Id NOT IN (SELECT Id FROM DemoTable WHERE FirstName = 'Chris');

आउटपुट:

+------+
| Id   |
+------+
| 101  |
+------+

व्याख्या

  1. सबक्वेरी: SELECT Id FROM DemoTable WHERE FirstName = 'Chris' → 100, 210 लौटाता है
  2. मुख्य क्वेरी: उन ID को बाहर करता है जिनमें 'Chris' है
  3. DISTINCT - डुप्लिकेट ID हटाता है
  4. परिणाम: केवल 101 (जिसमें Chris नहीं है)

NOT IN के साथ NULL चेतावनी

यदि सबक्वेरी NULL लौटाती है, तो NOT IN कोई पंक्ति नहीं लौटाता। सुरक्षित विकल्प:


            
  1. - MySQL में सबक्वेरी और NOT IN से विशिष्ट मान न रखने वाले रिकॉर्ड खोजें

    एक कॉलम में विशिष्ट मान नहीं रखने वाले रिकॉर्ड खोजने के लिए सबक्वेरी के साथ NOT IN का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1840 ( UserName VARCHAR(20), UserType ENUM(GUEST,ADMIN) ); डेटा डालें mysql> INSERT INTO DemoTable1840 VALUES(Chris,Admin); mysql> INSERT INTO

  1. - MySQL में IN() क्लॉज़ के साथ एक क्वेरी में रिकॉर्ड कैसे डिलीट करें?

    MySQL में एक ही क्वेरी में एकाधिक विशिष्ट रिकॉर्ड डिलीट करने के लिए, DELETE स्टेटमेंट के साथ IN() ऑपरेटर का उपयोग करें। यह एकाधिक DELETE स्टेटमेंट चलाने से अधिक कुशल और पठनीय है। उदाहरण: विशिष्ट StudentId वाले रिकॉर्ड डिलीट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1922 ( StudentI

  1. - MySQL में LIKE के साथ एकाधिक शब्दों से रिकॉर्ड कैसे फ़िल्टर करें?

    MySQL में किसी कॉलम को एकाधिक पैटर्न/शब्दों के विरुद्ध फ़िल्टर करने के लिए, RLIKE (या REGEXP) ऑपरेटर का उपयोग करें जो रेगुलर एक्सप्रेशन ऑल्टरनेशन (|) सपोर्ट करता है। यह एकाधिक LIKE शर्तों से अधिक संक्षिप्त और लचीला है। उदाहरण: SQL या Python वाले विषय खोजना डेमो टेबल बनाएं: mysql> CREATE TABLE