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

MySQL में CASE WHEN EXISTS के साथ रिकॉर्ड की मौजूदगी जांचना

MySQL में CASE WHEN EXISTS के साथ सशर्त अभिव्यक्ति में रिकॉर्ड मौजूदगी जांचना

EXISTS सबक्वेरी के साथ CASE WHEN का उपयोग करके किसी रिकॉर्ड की मौजूदगी के आधार पर सशर्त परिणाम ('Present'/'Not Present') उत्पन्न किया जा सकता है।

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

तालिका बनाना

mysql> CREATE TABLE DemoTable (
    UserId INT,
    UserName VARCHAR(100)
);

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

mysql> INSERT INTO DemoTable VALUES(100, 'Chris');
mysql> INSERT INTO DemoTable VALUES(101, 'Robert');
mysql> INSERT INTO DemoTable VALUES(102, 'David');
mysql> INSERT INTO DemoTable VALUES(103, 'Mike');

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+--------+----------+
| UserId | UserName |
+--------+----------+
| 100    | Chris    |
| 101    | Robert   |
| 102    | David    |
| 103    | Mike     |
+--------+----------+

UserId=102 की मौजूदगी जांचने के लिए क्वेरी

mysql> SELECT CASE 
    WHEN EXISTS(SELECT * FROM DemoTable WHERE UserId = 102) 
    THEN 'Present' ELSE 'Not Present' END AS Result;

आउटपुट:

+---------+
| Result  |
+---------+
| Present |
+---------+

EXISTS के लाभ

  • मिलान मिलते ही रुक जाता है (शॉर्ट-सर्किट) - तेज़
  • COUNT(*) > 0 से बेहतर प्रदर्शन
  • NULL मानों से अप्रभावित

अन्य उपयोग पैटर्न


            
  1. Microsoft Access डेटाबेस के साथ MySQL LIMIT क्लॉज का अनुकरण कैसे करें Microsoft Access डेटाबेस के साथ MySQL LIMIT क्लॉज का अनुकरण कैसे करें

    Microsoft Access में TOP का उपयोग करके MySQL LIMIT का अनुकरण Microsoft Access में, आप LIMIT के बजाय TOP का उपयोग कर सकते हैं। पहले टेबल बनाएं: INSERT कमांड का उपयोग करके रिकॉर्ड डालें: Access डेटाबेस के साथ MySQL LIMIT क्लॉज का अनुकरण करने की क्वेरी: Run पर क्लिक करने के बाद, आपको वांछित आउटपुट म

  1. - MySQL में IN क्लॉज और ORDER BY FIELD से निर्दिष्ट क्रम में पंक्तियां चुनें

    IN() और FIELD() से कस्टम क्रम में परिणाम प्राप्त करें IN() क्लॉज से विशिष्ट मान चुनें और FIELD() फ़ंक्शन से कस्टम क्रम में सॉर्ट करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1986 ( Number int ); Query OK, 0 rows affected (0.00 sec) mysql> insert into DemoTable1986 values(50); .

  1. - MySQL में CASE WHEN क्लॉज में एक्सप्रेशन सही काम नहीं कर रहा?

    सही CASE WHEN सिंटैक्स select (case when (first_name = John) then Carol when (last_name = Smith) then Doe end) RESULT from demo58; उदाहरण डेटा insert into demo58(first_name,last_name) values(John,Doe), (David,Smith), (John,Brown), (David,Miller); परिणाम +--------+ | RESULT | +-----