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

MySQL में दो कॉलम्स के लिए IN ऑपरेटर का उपयोग

रो कंस्ट्रक्टर के साथ IN ऑपरेटर

MySQL एक साथ कई कॉलम्स पर IN ऑपरेटर का उपयोग करने के लिए रो कंस्ट्रक्टर सिंटैक्स (col1, col2) IN ((val1, val2), ...) सपोर्ट करता है।

उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना

mysql> CREATE TABLE DemoTable810(
    First INT,
    Second INT
);
Query OK, 0 rows affected (0.73 sec)

रिकॉर्ड्स इन्सर्ट करना

mysql> INSERT INTO DemoTable810 VALUES
    (20,40),(70,90),(120,150),(78,128);
Query OK, 4 rows affected (...)

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

mysql> SELECT * FROM DemoTable810;
+-------+--------+
| First | Second |
+-------+--------+
| 20    | 40     |
| 70    | 90     |
| 120   | 150    |
| 78    | 128    |
+-------+--------+
4 rows in set (0.00 sec)

दो कॉलम्स पर IN क्वेरी

mysql> SELECT * FROM DemoTable810 WHERE (First,Second) IN ((120,150),(20,40));

परिणाम

+-------+--------+
| First | Second |
+-------+--------+
| 20    | 40     |
| 120   | 150    |
+-------+--------+
2 rows in set (0.00 sec)

काम कैसे करता है

  • (First, Second) एक रो कंस्ट्रक्टर बनाता है - दो कॉलम्स का एक टपल
  • IN ((120,150), (20,40)) टपल्स की सूची से तुलना करता है
  • मिलान सटीक होना चाहिए: दोनों कॉलम्स के मान जोड़ी से मेल खाने चाहिए

तुलना: IN vs OR

IN सिंटैक्स (संक्षिप्त)

WHERE (First, Second) IN ((120,150), (20,40))

समतुल्य OR सिंटैक्स (वर्बोज)

WHERE (First = 120 AND Second = 150) 
   OR (First = 20 AND Second = 40)

उपयोग के मामले

  • कंपोजिट प्राइमरी/यूनिक की पर लुकअप
  • एकाधिक सटीक रो मिलान
  • सबक्वेरी से मान जोड़े प्राप्त करना:
    WHERE (First, Second) IN (SELECT Col1, Col2 FROM OtherTable WHERE ...)

सबक्वेरी उदाहरण

SELECT * FROM Orders 
WHERE (CustomerId, OrderDate) IN (
    SELECT CustomerId, MAX(OrderDate) 
    FROM Orders 
    GROUP BY CustomerId
);

नोट

  • MySQL-विशिष्ट सिंटैक्स (मानक SQL में भी सपोर्टेड)
  • सभी तुलना ऑपरेटर्स (=, <>, <, आदि) रो कंस्ट्रक्टर्स के साथ काम करते हैं
  • NULL मानों वाले टपल्स की तुलना सावधानी से करें (NULL तुलना नियम लागू होते हैं)
  1. - MySQL में IFNULL का उपयोग करके NULL मानों को 1 के रूप में प्रदर्शित/अपडेट करें

    MySQL में NULL मानों को संभालना: IFNULL() और COALESCE() MySQL में IFNULL() फ़ंक्शन का उपयोग करके आप NULL मानों को डिफ़ॉल्ट मान से बदल सकते हैं। यह लेख दिखाता है कि कैसे NULL मानों को 1 से अपडेट करें और उन्हें प्रदर्शित करें। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) NULL मानों सहित डेटा

  1. - MySQL में GROUP BY से तारीखों के अनुसार रिकॉर्ड समूहित करें

    GROUP BY से ग्राहकवार न्यूनतम और अधिकतम शिपिंग तारीख प्राप्त करें ग्राहक नाम के अनुसार तारीखों को समूहित करके प्रत्येक ग्राहक की पहली और अंतिम शिपिंग तारीख पाएं। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2002 ( CustomerName varchar(20), CustomerShippingDate datetime ); Query OK, 0 ro

  1. - MySQL में TRUE/FALSE रिकॉर्ड को 0/1 के रूप में प्रदर्शित करें

    समाधान कॉलम को BOOLEAN (TINYINT(1) का पर्याय) के रूप में परिभाषित करें। उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2035 (Name, isMarried) VALUES (Chris, TRUE), (David, FALSE), (Bob, TRUE), (Mike, FALSE); परिणाम +----+-------+-----------+ | Id | Name | isMarried | +----+-------+----