WHERE क्लॉज की मदद से इसे प्राप्त करें।
सिंटैक्स निम्नलिखित है:
SELECT yourColumnName1, yourColumnName2, ...N FROM yourTableName WHERE (SELECT COUNT(*) FROM yourTableName) = 2;
कॉन्सेप्ट समझने के लिए, आइए एक टेबल बनाते हैं। टेबल बनाने की क्वेरी निम्नलिखित है:
mysql> create table CountWithSubqueryDemo
-> (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeName VARCHAR(20)
-> ); Query OK, 0 rows affected (2.09 sec)
INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें।
क्वेरी निम्नलिखित है:
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES('John'); Query OK, 1 row affected (0.54 sec)
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES(NULL); Query OK, 1 row affected (0.36 sec)
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES('Carol'); Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES(''); Query OK, 1 row affected (0.31 sec)
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES('Bob'); Query OK, 1 row affected (1.24 sec)
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES(NULL); Query OK, 1 row affected (0.30 sec)
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES('Sam'); Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES('Mike'); Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES('James'); Query OK, 1 row affected (0.26 sec)
SELECT स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें।
क्वेरी निम्नलिखित है:
mysql> SELECT * FROM CountWithSubqueryDemo;
निम्नलिखिक आउटपुट है:
+----+--------------+ | Id | EmployeeName | +----+--------------+ | 1 | John | | 2 | NULL | | 3 | Carol | | 4 | | | 5 | Bob | | 6 | NULL | | 7 | Sam | | 8 | Mike | | 9 | James | +----+--------------+ 9 rows in set (0.19 sec)
WHERE क्लॉज में वास्तविक रो काउंट का उपयोग करने का तरीका निम्नलिखित है:
mysql> SELECT Id, EmployeeName FROM CountWithSubqueryDemo
-> WHERE
-> (
-> SELECT COUNT(*) FROM CountWithSubqueryDemo
-> ) = 2; Empty set (0.03 sec)
उपरोक्त क्वेरी में हमें खाली सेट मिल रहा है क्योंकि यह तभी रो लौटाता है जब टेबल में केवल दो रिकॉर्ड हों। इसलिए, आइए टेबल से सभी रिकॉर्ड डिलीट करें और टेबल में 2 रिकॉर्ड इन्सर्ट करें।
क्वेरी निम्नलिखित है:
mysql> TRUNCATE TABLE CountWithSubqueryDemo; Query OK, 0 rows affected (1.95 sec)
INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें।
क्वेरी निम्नलिखित है:
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES('James'); Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES(NULL); Query OK, 1 row affected (0.46 sec)
SELECT स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें।
क्वेरी निम्नलिखित है:
mysql> SELECT * FROM CountWithSubqueryDemo;
निम्नलिखित आउटपुट है:
+----+--------------+ | Id | EmployeeName | +----+--------------+ | 1 | James | | 2 | NULL | +----+--------------+ 2 rows in set (0.00 sec)
अब WHERE क्लॉज में रो काउंट के लिए क्वेरी निम्नलिखित है:
mysql> SELECT Id, EmployeeName FROM CountWithSubqueryDemo
-> WHERE
-> (
-> SELECT COUNT(*) FROM CountWithSubqueryDemo
-> ) = 2;
निम्नलिखित आउटपुट है:
+----+--------------+ | Id | EmployeeName | +----+--------------+ | 1 | James | | 2 | NULL | +----+--------------+ 2 rows in set (0.00 sec)