MySQL-এ সাবকোয়েরি অবশ্যই প্যারেনথেসিস ( ) দিয়ে ঘেরা দিতে হয়।
সিনট্যাক্স
SELECT IF((SELECT COUNT(*) FROM yourTableName), 'Yes', 'No') AS anyAliasName;
উদাহরণ দিয়ে বুঝি
টেবিল তৈরি করুন:
mysql> CREATE TABLE SelectIfDemo (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(10)
-> );
Query OK, 0 rows affected (1.03 sec)
রেকর্ড ইনসার্ট করুন:
mysql> INSERT INTO SelectIfDemo(Name) VALUES('John');
mysql> INSERT INTO SelectIfDemo(Name) VALUES('Carol');
mysql> INSERT INTO SelectIfDemo(Name) VALUES('Larry');
mysql> INSERT INTO SelectIfDemo(Name) VALUES('Bob');
mysql> INSERT INTO SelectIfDemo(Name) VALUES('Sam');
সকল রেকর্ড:
mysql> SELECT * FROM SelectIfDemo;
+----+-------+
| Id | Name |
+----+-------+
| 1 | John |
| 2 | Carol |
| 3 | Larry |
| 4 | Bob |
| 5 | Sam |
+----+-------+
5 rows in set (0.00 sec)
সাবকোয়েরি সঠিকভাবে প্যারেনথেসিস দিয়ে ব্যবহার
mysql> SELECT IF((SELECT COUNT(*) FROM SelectIfDemo), 'Yes', 'No') AS Result;
+--------+
| Result |
+--------+
| Yes |
+--------+
1 row in set (0.00 sec)
ব্যাখ্যা: (SELECT COUNT(*) FROM SelectIfDemo) সাবকোয়েরিটি প্যারেনথেসিস দিয়ে ঘেরা হয়েছে। এটি ৫ রিটার্ন করে (সত্য), তাই IF ফাংশন 'Yes' রিটার্ন করেছে।
সাবকোয়েরির ধরন
- স্ক্যালার সাবকোয়েরি: একক মান রিটার্ন করে (উপরের উদাহরণ)
- রো সাবকোয়েরি: একাধিক কলামের এক রো রিটার্ন করে
- টেবিল সাবকোয়েরি: একাধিক রো ও কলাম রিটার্ন করে (FROM ক্লজে ব্যবহার)
সব ধরনের সাবকোয়েরি প্যারেনথেসিস দিয়ে ঘেরা দিতে হয়।