IN() অপারেটর ব্যবহার করে একাধিক নির্দিষ্ট মান মached করে রেকর্ড বের করা যায়। এটি একাধিক OR শর্তের চেয়ে পঠনযোগ্য এবং দ্রুত।
টেবিল তৈরি ও ডেটা ইনসার্ট
mysql> create table DemoTable778 (
ClientId varchar(100),
ClientName varchar(100)
);
Query OK, 0 rows affected (1.05 sec)
mysql> insert into DemoTable778 values('J-101', 'John');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable778 values('A-102', 'Adam');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable778 values('C-103', 'Chris');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable778 values('D-104', 'David');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable778 values('R-105', 'Robert');
Query OK, 1 row affected (0.41 sec)
সকল রেকর্ড
mysql> select * from DemoTable778;
আউটপুট:
+----------+------------+ | ClientId | ClientName | +----------+------------+ | J-101 | John | | A-102 | Adam | | C-103 | Chris | | D-104 | David | | R-105 | Robert | +----------+------------+ 5 rows in set (0.00 sec)
IN() ব্যবহার করে নির্দিষ্ট আইডি নির্বাচন
mysql> SELECT * FROM DemoTable778
WHERE ClientId IN ('J-101', 'A-102', 'C-103', 'D-104', 'R-105');
ফলাফল (সকল রো যেহেতু তালিকাতেই আছে):
+----------+------------+ | ClientId | ClientName | +----------+------------+ | J-101 | John | | A-102 | Adam | | C-103 | Chris | | D-104 | David | | R-105 | Robert | +----------+------------+ 5 rows in set (0.00 sec)
সাবকোয়েরির সাথে IN()
আপনি অন্য টেবিল থেকে আইডি তালিকা পাওয়া যেতে পারে:
SELECT * FROM DemoTable778 WHERE ClientId IN (SELECT ClientId FROM ActiveClients);
NOT IN
বাড়তি মান বাদ দিতে NOT IN() ব্যবহার করুন। NULL মান থাকলে সতর্ক থাকুন (NOT IN NULL-এর সাথে অপ্রত্যাশিত ফলাফল দেয়)।