MySQL-এ একটি সেট/অ্যারে মান বাদ দিয়ে বাকি রেকর্ড পেতে NOT IN() ব্যবহার করুন।
উদাহরণ
mysql> CREATE TABLE DemoTable718 (
Id INT,
FirstName VARCHAR(100),
Age INT
);
Query OK, 0 rows affected (0.59 sec)
mysql> INSERT INTO DemoTable718 VALUES
(101, 'Chris', 26),
(102, 'Robert', 24),
(103, 'David', 27),
(104, 'Mike', 28),
(105, 'Sam', 23);
Query OK, 5 rows affected
সব রেকর্ড
mysql> SELECT * FROM DemoTable718;
+------+-----------+------+ | Id | FirstName | Age | +------+-----------+------+ | 101 | Chris | 26 | | 102 | Robert | 24 | | 103 | David | 27 | | 104 | Mike | 28 | | 105 | Sam | 23 | +------+-----------+------+
১০১, ১০৩, ১০৪ বাদ দিয়ে বাকিগুলো
mysql> SELECT * FROM DemoTable718 WHERE Id NOT IN ('101', '103', '104');
+------+-----------+------+ | Id | FirstName | Age | +------+-----------+------+ | 102 | Robert | 24 | | 105 | Sam | 23 | +------+-----------+------+
গুরুত্বপূর্ণ সতর্কতা
- সেটে
NULLথাকলেNOT INকোনো রো রিটার্ন করে না (ত্রুটি নয়, লজিক) - সমাধান:
WHERE Id NOT IN (..., ...) AND Id IS NOT NULLবাNOT EXISTSব্যবহার করুন - বড় সেটের জন্য
NOT EXISTSবাLEFT JOIN ... WHERE IS NULLদ্রুত