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

MySQL-এ সাবকুয়েরি এবং NOT IN ব্যবহার করে নির্দিষ্ট মান নেই এমন রেকর্ড বের করা


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

mysql> create table DemoTable1840 ( UserName varchar(20), UserType ENUM('GUEST','ADMIN') ); Query OK, 0 rows affected (0.00 sec)
mysql> insert into DemoTable1840 values('Chris','Admin'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1840 values('David','Guest'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1840 values('Chris','Guest'); Query OK, 1 row affected (0.00 sec)

সব রেকর্ড

mysql> select * from DemoTable1840;
+----------+----------+
| UserName | UserType |
+----------+----------+
| Chris    | ADMIN    |
| David    | GUEST    |
| Chris    | GUEST    |
+----------+----------+
3 rows in set (0.00 sec)

Admin না হয় এমন ইউজার বের করা

সাবকুয়েরি দিয়ে Admin টাইপের ইউজারদের বাদ দিয়ে বাকিদের বের করি:

mysql> select UserName from DemoTable1840 where UserName NOT IN(select UserName from DemoTable1840 where UserType='Admin');
+----------+
| UserName |
+----------+
| David    |
+----------+
1 row in set (0.00 sec)

ব্যাখ্যা: সাবকুয়েরি 'Chris' ফেরত দেয় (যে Admin)। বাহ্যিক কুয়েরি 'Chris' বাদ দিয়ে 'David' ফেরত দেয়। EXISTS বা LEFT JOIN ... IS NULL ব্যবহার করাও যায় যা পারফরম্যান্সে ভালো।

  1. MySQL-এ একক SELECT কোয়েরিতে দুটি টেবিল থেকে ডেটা ফেচ করা

  2. MySQL-এ UNION ALL এবং INSERT INTO SELECT ব্যবহার করে একক কোয়েরিতে দুটি টেবিলে ডেটা ইনসার্ট করুন

  3. MySQL-এ একসাথে দুটি কলাম আপডেট করা (সিঙ্গল কোয়েরি)

  4. MySQL-এ IN() অপারেটর দিয়ে একক কোয়েরিতে একাধিক রেকর্ড ডিলিট করা