কম্পিউটার টিউটোরিয়াল

MySQL-এ NOT IN() ব্যবহার করে নির্দিষ্ট মান বাদ দিয়ে রেকর্ড নির্বাচন

NOT IN() অপারেটর ব্যবহার করে নির্দিষ্ট মানগুলো বাদ দিয়ে বাকি রেকর্ডগুলো বের করা যায়।

টেবিল তৈরি ও ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable791 (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(100)
);
Query OK, 0 rows affected (0.61 sec)
mysql> INSERT INTO DemoTable791(FirstName) VALUES ('Chris');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable791(FirstName) VALUES ('Robert');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable791(FirstName) VALUES ('David');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable791(FirstName) VALUES ('Mike');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable791(FirstName) VALUES ('Bob');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable791(FirstName) VALUES ('Carol');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable791(FirstName) VALUES ('Adam');
Query OK, 1 row affected (0.09 sec)

সকল রেকর্ড

mysql> SELECT * FROM DemoTable791;

আউটপুট:

+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | Chris     |
| 2  | Robert    |
| 3  | David     |
| 4  | Mike      |
| 5  | Bob       |
| 6  | Carol     |
| 7  | Adam      |
+----+-----------+
7 rows in set (0.00 sec)

Id 4, 5, 6 বাদ দিয়ে নির্বাচন

mysql> SELECT * FROM DemoTable791 WHERE Id NOT IN (4, 5, 6);

ফলাফল:

+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | Chris     |
| 2  | Robert    |
| 3  | David     |
| 7  | Adam      |
+----+-----------+
4 rows in set (0.00 sec)

সাবকোয়েরির সাথে NOT IN

SELECT * FROM DemoTable791 
WHERE Id NOT IN (SELECT Id FROM InactiveUsers);

NULL সতর্কতা (আরেকবার)

যদি সাবকোয়েরি NULL রিটার্ন করে, তবে NOT IN কোনো রো রিটার্ন করবে না। NOT EXISTS বা LEFT JOIN ... WHERE IS NULL ব্যবহার করুন।

  1. MySQL-এ শুধুমাত্র NULL মান আপডেট করে অন্য মান দিয়ে প্রতিস্থাপন করা

  2. MySQL-এ টেবিলে নেই এমন মানগুলো কোয়েরি করে বের করা (UNION ALL + NOT EXISTS)

  3. MySQL-এ দুটি কলামের মোট মান গণনা করা (NULL বাদ দিয়ে)

  4. MySQL-এ INSERT INTO SELECT ব্যবহার করে অন্য টেবিল থেকে ডেটা কপি করা