একই কোয়েরিতে একাধিক শর্ত যুক্ত করতে OR এবং IN() একসাথে ব্যবহার করা যায়। এটি ফ্লেক্সিবল ফিল্টারিংয়ের জন্য উপযোগী।
টেবিল তৈরি ও ডেটা ইনসার্ট
mysql> create table DemoTable777 (
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName varchar(100),
StudentAge int
);
Query OK, 0 rows affected (1.34 sec)
mysql> insert into DemoTable777(StudentName, StudentAge) values('Chris', 23);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable777(StudentName, StudentAge) values('Robert', 21);
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable777(StudentName, StudentAge) values('Mike', 19);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable777(StudentName, StudentAge) values('Bob', 22);
Query OK, 1 row affected (0.19 sec)
সকল রেকর্ড
mysql> select * from DemoTable777;
আউটপুট:
+-----------+-------------+------------+ | StudentId | StudentName | StudentAge | +-----------+-------------+------------+ | 1 | Chris | 23 | | 2 | Robert | 21 | | 3 | Mike | 19 | | 4 | Bob | 22 | +-----------+-------------+------------+ 4 rows in set (0.00 sec)
OR ও IN() একসাথে ব্যবহার
mysql> SELECT * FROM DemoTable777 WHERE StudentId IN (1, 2) OR StudentName = 'Mike' OR StudentAge = 22;
ফলাফল (সকল রো মিলে যায়):
+-----------+-------------+------------+ | StudentId | StudentName | StudentAge | +-----------+-------------+------------+ | 1 | Chris | 23 | | 2 | Robert | 21 | | 3 | Mike | 19 | | 4 | Bob | 22 | +-----------+-------------+------------+ 4 rows in set (0.00 sec)
ব্যাখ্যা
StudentId IN (1,2)- আইডি ১ বা ২OR StudentName = 'Mike'- বা নাম 'Mike'OR StudentAge = 22- বা বয়স ২২- যেকোনো একটি শর্ত সত্য হলে রো নির্বাচিত হয়।
পারফরম্যান্স টিপস
IN()তালিকা ছোট হলে দ্রুত কাজ করে।- বড় তালিকার জন্য টেম্পোরারি টেবিল বা JOIN ভালো।
- ইনডেক্সযুক্ত কলামে
IN()ব্যবহার করলে ইনডেক্স ব্যবহার হয়।