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 मानों से अप्रभावित
अन्य उपयोग पैटर्न