MySQL में WHERE और OR से एकाधिक कॉलम द्वारा फ़िल्टरिंग
एकाधिक कॉलम द्वारा फ़िल्टरिंग करने के लिए, WHERE क्लॉज के साथ OR का उपयोग करें। आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name varchar(10),
Score int
); Query OK, 0 rows affected (0.28 sec)
इन्सर्ट कमांड से टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable(Name,Score) values('John',80); Query OK, 1 row affected (0.04 sec)
mysql> insert into DemoTable(Name,Score) values('John',90); Query OK, 1 row affected (0.06 sec)
mysql> insert into DemoTable(Name,Score) values('Carol',89); Query OK, 1 row affected (0.04 sec)
mysql> insert into DemoTable(Name,Score) values('John',86); Query OK, 1 row affected (0.04 sec)
mysql> insert into DemoTable(Name,Score) values('Carol',98); Query OK, 1 row affected (0.06 sec)
mysql> insert into DemoTable(Name,Score) values('David',99); Query OK, 1 row affected (0.06 sec)
सेलेक्ट स्टेटमेंट से टेबल के सभी रिकॉर्ड प्रदर्शित करें:
mysql> select *from DemoTable;
आउटपुट:
+----+-------+-------+ | Id | Name | Score | +----+-------+-------+ | 1 | John | 80 | | 2 | John | 90 | | 3 | Carol | 89 | | 4 | John | 86 | | 5 | Carol | 98 | | 6 | David | 99 | +----+-------+-------+ 6 rows in set (0.00 sec)
एकाधिक कॉलम द्वारा फ़िल्टरिंग करने का क्वेरी:
mysql> select *from DemoTable where (Name,Score)=('John', 90) or (Name,Score)=('Carol', 98);
आउटपुट:
+----+-------+-------+ | Id | Name | Score | +----+-------+-------+ | 2 | John | 90 | | 5 | Carol | 98 | +----+-------+-------+ 2 rows in set (0.00 sec)
व्याख्या: (Name,Score)=('John', 90) रो मान तुलना है (MySQL में समर्थित)। यह दोनों कॉलम एक साथ मेल खाते हैं। OR कई टुपल्स को जोड़ता है। वैकल्पिक रूप से WHERE (Name='John' AND Score=90) OR (Name='Carol' AND Score=98) का उपयोग करें।