MySQL में सबक्वेरी को पैरेंथेसिस में सही ढंग से बंद करना
MySQL में सबक्वेरी को हमेशा पैरेंथेसिस ( ) में बंद करना आवश्यक है।
सिंटैक्स
SELECT IF((SELECT COUNT(*) FROM yourTableName), 'Yes', 'No') AS anyAliasName;
उदाहरण
टेबल बनाएं:
mysql> create table SelectIfDemo (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(10)
-> );
डेटा डालें:
mysql> insert into SelectIfDemo(Name) values('John');
mysql> insert into SelectIfDemo(Name) values('Carol');
mysql> insert into SelectIfDemo(Name) values('Larry');
mysql> insert into SelectIfDemo(Name) values('Bob');
mysql> insert into SelectIfDemo(Name) values('Sam');
सबक्वेरी के साथ IF स्टेटमेंट:
mysql> select if((select count(*) from SelectIfDemo), 'Yes', 'No') as Result;
परिणाम:
+--------+ | Result | +--------+ | Yes | +--------+
सामान्य गलतियाँ
-- गलत: पैरेंथेसिस गायब SELECT IF(SELECT COUNT(*) FROM table, 'Yes', 'No'); -- सही: सबक्वेरी पैरेंथेसिस में SELECT IF((SELECT COUNT(*) FROM table), 'Yes', 'No');
सबक्वेरी के प्रकार
- स्केलर सबक्वेरी: एक मान लौटाती है (उपरोक्त उदाहरण)
- पंक्ति सबक्वेरी: एक पंक्ति लौटाती है
- तालिका सबक्वेरी: एकाधिक पंक्तियाँ लौटाती है (IN, EXISTS, ANY/ALL के साथ उपयोग)
बेस्ट प्रैक्टिस
- हमेशा सबक्वेरी को पैरेंथेसिस में बंद करें
- जटिल सबक्वेरी के लिए CTE (WITH क्लॉज) का उपयोग करें (MySQL 8.0+)
- सबक्वेरी के बजाय JOIN अक्सर बेहतर प्रदर्शन देता है