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

MySQL-এ দুটি SELECT কোয়েরির পার্থক্য বের করা

MySQL-এ দুটি SELECT কোয়েরির পার্থক্য বের করতে সাবকোয়েরি ব্যবহার করা যায়। সিনট্যাক্স নিচে দেওয়া হলো:

SELECT *FROM yourTableName where yourColumnName NOT IN(SELECT yourColumnName FROM youTableName WHERE yourCondition;

এটি বুঝতে একটি টেবিল তৈরি করা যাক। টেবিল তৈরির কোয়েরি:

mysql> create table DifferenceSelectDemo  
    -> (  
    -> Id int NOT NULL AUTO_INCREMENT,  
    -> UserId int,  
    -> UserValue int,   
    -> PRIMARY KEY(Id)   
    ->  ); Query OK, 0 rows affected (0.87 sec)

ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করা যাক। কোয়েরিটি হলো:

mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(10,10); Query OK, 1 row affected (0.24 sec) mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(10,20); Query OK, 1 row affected (0.15 sec) mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(20,30); Query OK, 1 row affected (0.17 sec) mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(20,20); Query OK, 1 row affected (0.19 sec) mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(30,40); Query OK, 1 row affected (0.14 sec) mysql> insert into DifferenceSelectDemo(UserId,UserValue) values(30,20); Query OK, 1 row affected (0.15 sec)

সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক। কোয়েরিটি হলো:

mysql> select *from DifferenceSelectDemo;

আউটপুট নিচে দেওয়া হলো:

+----+--------+-----------+ | Id | UserId | UserValue | +----+--------+-----------+ |  1 |   10 |       10 | |  2 |   10 |       20 | |  3 |   20 |       30 | |  4 |   20 |       20 | |  5 |   30 |       40 | |  6 |   30 |       20 | +----+--------+-----------+ 6 rows in set (0.02 sec)

দুটি SELECT-এর পার্থক্য বের করার কোয়েরি নিচে দেওয়া হলো:

mysql> select *from DifferenceSelectDemo   
    -> WHERE UserValue NOT IN (select UserValue from DifferenceSelectDemo where Id=1);

আউটপুট নিচে দেওয়া হলো:

+----+--------+-----------+ | Id | UserId | UserValue | +----+--------+-----------+ |  2 |   10 |       20 | |  3 |   20 | 30 | |  4 |   20 | 20 | |  5 |   30 | 40 | |  6 |   30 | 20 | +----+--------+-----------+ 5 rows in set (0.09 sec)

ব্যাখ্যা: সাবকোয়েরি select UserValue from DifferenceSelectDemo where Id=1 রিটার্ন করে 10। মেইন কোয়েরি UserValue NOT IN (10) দিয়ে UserValue ১০ ব্যতীত সব সারি সিলেক্ট করেছে। NOT IN সাবকোয়েরির ফলাফলসেটের সাথে মিলিত না হলে সারি রিটার্ন করে। দ্রষ্টব্য: সাবকোয়েরি যদি NULL রিটার্ন করে, তবে NOT IN অপ্রত্যাশিত ফলাফল দিতে পারে। সেজন্য NOT EXISTS বা LEFT JOIN ... WHERE IS NULL ব্যবহার করা ভালো।

  1. MySQL-এ REPLACE() ফাংশন ব্যবহার করে শব্দের মাঝপথি স্পেস মুছে ফেলা

  2. MySQL-এ intvalue='1' এবং intvalue=1-এর পার্থক্য

  3. MySQL-এ দুটি ডেটাটাইম মানের পার্থক্য বের করা

  4. C#-এ দুটি DateTime-এর মধ্যে মিলিসেকেন্ড পার্থক্য নির্ণয়