IN ऑपरेटर और HAVING COUNT का उपयोग करके सरणी मिलान
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable1523 (
Id INT,
Value INT
);
Query OK, 0 rows affected (0.76 sec)
रिकॉर्ड्स डालना
mysql> INSERT INTO DemoTable1523 VALUES(1, 56); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO DemoTable1523 VALUES(2, 78); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO DemoTable1523 VALUES(1, 34); Query OK, 1 row affected (0.10 sec) mysql> INSERT INTO DemoTable1523 VALUES(2, 45); Query OK, 1 row affected (0.17 sec) mysql> INSERT INTO DemoTable1523 VALUES(1, 99); Query OK, 1 row affected (0.10 sec)
सभी रिकॉर्ड्स देखना
mysql> SELECT * FROM DemoTable1523;
आउटपुट:
+------+-------+ | Id | Value | +------+-------+ | 1 | 56 | | 2 | 78 | | 1 | 34 | | 2 | 45 | | 1 | 99 | +------+-------+ 5 rows in set (0.00 sec)
सरणी तत्वों का मिलान करने की क्वेरी
यहां हम उन Id चुन रहे हैं जिनमें मान 34, 99, और 56 सभी मौजूद हैं:
mysql> SELECT Id FROM DemoTable1523
WHERE Value IN ('34', '99', '56')
GROUP BY Id
HAVING COUNT(*) = 3;
आउटपुट:
+------+ | Id | +------+ | 1 | +------+ 1 row in set (0.00 sec)
व्याख्या:
WHERE Value IN ('34', '99', '56')- केवल इन मानों वाली पंक्तियाँ चुनता है।GROUP BY Id- Id के अनुसार ग्रुप करता है।HAVING COUNT(*) = 3- केवल वही Id चुनता है जिनमें सभी 3 मान मौजूद हैं।
Id=1 के पास 56, 34, 99 तीनों हैं, जबकि Id=2 के पास केवल 78, 45 हैं।