MySQL টেবিলে কোনো সারি (row) আছে কিনা তা যাচাই করতে EXISTS কন্ডিশন ব্যবহার করা সবচেয়ে ভালো উপায়। EXISTS কন্ডিশন সাবকোয়েরির সাথে ব্যবহার করা যায়। এটি সারি থাকলে TRUE (১) ফেরত দেয় এবং না থাকলে FALSE (০) ফেরত দেয়।
উদাহরণের জন্য টেবিল তৈরি
প্রথমে CREATE কমান্ড দিয়ে একটি টেবিল তৈরি করি:
mysql> CREATE table ExistsRowDemo ( -> ExistId int, -> Name varchar(100) -> ); Query OK, 0 rows affected (0.53 sec)
রেকর্ড ইনসার্ট করা
INSERT কমান্ড দিয়ে কিছু রেকর্ড যোগ করি:
mysql> INSERT into ExistsRowDemo values(100,'John'); Query OK, 1 row affected (0.16 sec) mysql> INSERT into ExistsRowDemo values(101,'Bob'); Query OK, 1 row affected (0.17 sec) mysql> INSERT into ExistsRowDemo values(103,'Carol'); Query OK, 1 row affected (0.20 sec) mysql> INSERT into ExistsRowDemo values(104,'David'); Query OK, 1 row affected (0.13 sec)
টেবিলের ডেটা দেখা
mysql> SELECT * from ExistsRowDemo;
আউটপুট:
+---------+-------+ | ExistId | Name | +---------+-------+ | 100 | John | | 101 | Bob | | 103 | Carol | | 104 | David | +---------+-------+ 4 rows in set (0.00 sec)
EXISTS সিনট্যাক্স
SELECT EXISTS(SELECT * FROM yourTableName WHERE yourCondition);
কেস ১: সারি বিদ্যমান থাকলে
mysql> SELECT EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=104);
আউটপুট:
+------------------------------------------------------+ | EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=104)| +------------------------------------------------------+ | 1 | +------------------------------------------------------+ 1 row in set (0.00 sec)
ফলাফল ১ মানে সারি আছে (TRUE)।
কেস ২: সারি নাও থাকলে
mysql> SELECT EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=105);
আউটপুট:
+------------------------------------------------------+ | EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=105)| +------------------------------------------------------+ | 0 | +------------------------------------------------------+ 1 row in set (0.00 sec)
ফলাফল ০ মানে সারি নেই (FALSE)।