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

MySQL में COUNT DISTINCT और IN ऑपरेटर का उपयोग करके मल्टीपल रो का अस्तित्व कैसे जांचें

COUNT(DISTINCT ...) और IN() के साथ मल्टीपल रो अस्तित्व जांच

निर्दिष्ट ID मानों वाली सभी पंक्तियाँ मौजूद हैं या नहीं जांचने के लिए COUNT(DISTINCT Id) की तुलना अपेक्षित संख्या से करें।

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable1219 (
    Id INT,
    Name VARCHAR(40)
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable1219 VALUES (100, 'Adam');
mysql> INSERT INTO DemoTable1219 VALUES (101, 'John');
mysql> INSERT INTO DemoTable1219 VALUES (102, 'Chris');
mysql> INSERT INTO DemoTable1219 VALUES (103, 'Bob');

सभी रिकॉर्ड्स देखें:

mysql> SELECT * FROM DemoTable1219;

आउटपुट:

+------+-------+
| Id   | Name  |
+------+-------+
| 100  | Adam  |
| 101  | John  |
| 102  | Chris |
| 103  | Bob   |
+------+-------+

ID 100, 103, 102 वाली सभी 3 पंक्तियाँ मौजूद हैं या नहीं जांचने के लिए क्वेरी:

mysql> SELECT COUNT(DISTINCT Id) = 3
    FROM DemoTable1219
    WHERE Id IN (100, 103, 102);

आउटपुट:

+----------------------+
| COUNT(DISTINCT Id)=3 |
+----------------------+
| 1                    |
+----------------------+

व्याख्या:

  • WHERE Id IN (100, 103, 102): केवल इन 3 ID वाली पंक्तियाँ चुनता है
  • COUNT(DISTINCT Id): मिली अनोखी ID की संख्या गिनता है
  • = 3: अपेक्षित संख्या (3) से तुलना करता है
  • परिणाम 1 (सत्य): सभी 3 ID मौजूद हैं
  • परिणाम 0 (असत्य): कोई ID गायब है

क्यों COUNT(DISTINCT)? यदि टेबल में डुप्लिकेट ID हैं (यूनिक कंस्ट्रेंट नहीं), तो COUNT(*) गलत काउंट दे सकता है। DISTINCT सही काउंट सुनिश्चित करता है।

वैकल्पिक तरीके:

-- तरीका 1: EXISTS के साथ (प्रत्येक ID के लिए)
SELECT * FROM DemoTable1219 WHERE Id = 100;
SELECT * FROM DemoTable1219 WHERE Id = 103;
SELECT * FROM DemoTable1219 WHERE Id = 102;

-- तरीका 2: LEFT JOIN के साथ (लापता ID खोजने के लिए)
SELECT ids.id FROM (SELECT 100 AS id UNION SELECT 103 UNION SELECT 102) ids
LEFT JOIN DemoTable1219 d ON ids.id = d.Id
WHERE d.Id IS NULL;  -- लापता ID लौटाता है

नोट: MySQL में बूलियन परिणाम 1 (सत्य) या 0 (असत्य) के रूप में प्रदर्शित होता है।

  1. - एकल MySQL क्वेरी में एकाधिक पंक्तियां कैसे प्राप्त करें

    LIKE ऑपरेटर का उपयोग करके पैटर्न मिलान के साथ एकाधिक पंक्तियां प्राप्त करना एकल MySQL क्वेरी में एकाधिक पंक्तियां प्राप्त करने के लिए LIKE ऑपरेटर का उपयोग करें। पहले टेबल बनाएं: create table DemoTable1385 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20) ); Query OK, 0 rows affected (0

  1. - एकल MySQL क्वेरी में एकाधिक पंक्तियां डालें

    INSERT INTO ... VALUES (), (), () सिंटैक्स का उपयोग करके बल्क इन्सर्ट पहले टेबल बनाएं: create table DemoTable1384 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20), StudentAge int ); Query OK, 0 rows affected (0.63 sec) INSERT कमांड का उपयोग करके रिकॉर्ड डालें। यहां हम एक

  1. - MySQL में कई पंक्तियाँ प्रभावी ढंग से चुनना

    इंडेक्स और IN() क्लॉज से कुशल पंक्ति चयन प्राइमरी की या इंडेक्स पर IN() क्लॉज का उपयोग करके कई विशिष्ट आईडी की पंक्तियाँ एक क्वेरी में कुशलता से प्राप्त करें। तालिका और इंडेक्स CREATE INDEX id_index ON DemoTable1501(Id); डेटा डालना (220, www.gmail.com), (350, www.youtube.com); कुशल चयन क्वेरी