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

MySQL EXISTS ऑपरेटर के साथ सबक्वेरी 0 पंक्ति लौटाए तो क्या होता है?

यदि EXISTS ऑपरेटर के साथ उपयोग की गई सबक्वेरी कोई पंक्ति नहीं लौटाती (0 rows), तो EXISTS एक्सप्रेशन FALSE होता है और MySQL खाली सेट (Empty set) लौटाता है।

उदाहरण टेबल्स:

-- Customers
+-------------+----------+
| Customer_Id | Name     |
+-------------+----------+
| 1           | Rahul    |
| 2           | Yashpal  |
| 3           | Gaurav   |
| 4           | Virender |
+-------------+----------+

-- Reservations
+------+-------------+------------+
| ID   | Customer_id | Day        |
+------+-------------+------------+
| 1    | 1           | 2017-12-30 |
| 2    | 2           | 2017-12-28 |
| 3    | 2           | 2017-12-29 |
| 4    | 1           | 2017-12-25 |
| 5    | 3           | 2017-12-26 |
+------+-------------+------------+

कोई पंक्ति न लौटाने वाली EXISTS सबक्वेरी:

mysql> Select Name from Customers 
    -> WHERE EXISTS (SELECT * FROM Reservations WHERE customer_id = 4);
Empty set (0.00 sec)

व्याख्या:

  • सबक्वेरी: SELECT * FROM Reservations WHERE customer_id = 4
  • customer_id = 4 (Virender) की कोई बुकिंग नहीं है
  • सबक्वेरी 0 पंक्तियां लौटाती है
  • EXISTS → FALSE
  • बाहरी क्वेरी कोई पंक्ति नहीं लौटाती → Empty set

तुलना:

-- EXISTS (सबक्वेरी 0 पंक्ति) → FALSE → कोई परिणाम नहीं
WHERE EXISTS (subquery_returning_zero_rows)

-- NOT EXISTS (सबक्वेरी 0 पंक्ति) → TRUE → सभी बाहरी पंक्तियां
WHERE NOT EXISTS (subquery_returning_zero_rows)

यही कारण है कि "बुकिंग न करने वाले ग्राहक" खोजने के लिए NOT EXISTS उपयोग किया जाता है।

  1. - MySQL में शर्तों के आधार पर पंक्तियों को कैसे बदलें?

    MySQL में विशिष्ट शर्तों के आधार पर पंक्तियों के मान अपडेट करने के लिए CASE स्टेटमेंट का उपयोग किया जाता है। यह एक ही UPDATE क्वेरी में कई शर्तों को संभालने का कुशल तरीका है। सिंटैक्स UPDATE table_name SET column_name = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ...

  1. - MySQL में UNIQUE कंस्ट्रेंट से पंक्ति विशिष्टता सुनिश्चित करें

    MySQL में UNIQUE कंस्ट्रेंट (इंडेक्स) का उपयोग करके एक या अधिक कॉलम के संयोजन को अद्वितीय (unique) बना सकते हैं, जिससे डुप्लिकेट पंक्तियां रोकी जाती हैं। सिंटैक्स -- टेबल बनाते समय CREATE TABLE टेबल_नाम ( कॉलम1 टाइप, कॉलम2 टाइप, UNIQUE (कॉलम1, कॉलम2, ...) ); -- मौजूदा टेबल पर ALTER TAB

  1. - MySQL में CURDATE के साथ CONTAINS() का उपयोग कैसे करें? (CONCAT + LIKE का उपयोग करें)

    MySQL में CONTAINS() नहीं है - CONCAT() और LIKE का उपयोग करें MySQL में CONTAINS() फ़ंक्शन नहीं है (यह SQL Server/Full-text खोज में मौजूद है)। स्ट्रिंग में उपस्ट्रिंग खोजने के लिए, LIKE ऑपरेटर के साथ CONCAT() का उपयोग करके डायनामिक पैटर्न बनाएं। वर्तमान तिथि जांचना SELECT CURDATE(); +------------+