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

MySQL স্কেলার সাবকোয়েরির আউটপুট এবং ব্যবহার সীমাবদ্ধতা

MySQL স্কেলার সাবকোয়েরি ঠিক একটি কলামের মান একটি রো থেকে রিটার্ন করে এবং সেটি সেখানে ব্যবহার করা যায় যেখানে একটি একক কলাম গ্রহণযোগ্য। স্কেলার সাবকোয়েরি নিচের পরিস্থিতিতে এক রো ব্যতীত অন্য ফলাফল দিতে পারে:

Case ১ - ০ রো রিটার্ন করলে

সাবকোয়েরি ০ রো রিটার্ন করলে স্কেলার সাবকোয়েরি এক্সপ্রেশনের মান হবে NULL।

Case ২ - একাধিক রো রিটার্ন করলে

সাবকোয়েরি একাধিক রো রিটার্ন করলে MySQL এরর দেয়, কারণ স্কেলার সাবকোয়েরির প্রপার্টি হলো একমাত্র একটি মান রিটার্ন করা।

নিচের টেবিলগুলো ব্যবহার করে উদাহরণ:

mysql> Select * from Customers;
+-------------+----------+
| Customer_Id | Name     |
+-------------+----------+
|           1 | Rahul    |
|           2 | Yashpal  |
|           3 | Gaurav   |
|           4 | Virender |
+-------------+----------+

mysql> Select * from Reservations;
+------+-------------+------------+
| ID   | Customer_id | Day        |
+------+-------------+------------+
|    1 |           1 | 2017-12-30 |
|    2 |           2 | 2017-12-28 |
|    3 |           2 | 2017-12-29 |
|    4 |           1 | 2017-12-25 |
|    5 |           3 | 2017-12-26 |
+------+-------------+------------+

নিচের কোয়েরি ঠিক একটি কলাম মান এক রো রিটার্ন করে:

mysql> Select Name from Customers WHERE customer_id = (Select Customer_id FROM reservations where id = 3);
+---------+
| Name    |
+---------+
| Yashpal |
+---------+

যদি সাবকোয়েরি ০ রো রিটার্ন করে (যেমন id=10), তবে ফলাফল হবে খালি সেট:

mysql> Select Name from Customers WHERE customer_id = (Select Customer_id FROM reservations where id = 10);
Empty set (0.00 sec)

ব্যবহার সীমাবদ্ধতা:

স্কেলার সাবকোয়েরি শুধু সেসব স্টেটমেন্টের সাথে ব্যবহার করা যায় যেগুলো শুধু লিটারেল ভ্যালু গ্রহণ করে। উদাহরণস্বরূপ, LIMIT ক্লজ লিটারেল ইন্টিজার আর্গুমেন্ট চায়, তাই সেখানে স্কেলার সাবকোয়েরি ব্যবহার করা যায় না।

  1. MySQL-এ <> অপারেটরের অর্থ এবং ব্যবহার

  2. MySQL-এ LIKE এবং OR অপারেটর ব্যবহার করে 'a', 'b', 'c' দিয়ে শুরু হওয়া নাম খুঁজে বের করা

  3. Java JDBC-এ MySQL COUNT কোয়েরির রিটার্ন টাইপ কী?

  4. MySQL-এ LIKE ব্যবহার করে নির্দিষ্ট ক্যারেক্টার দিয়ে শুরু হওয়া নাম খুঁজে বের করুন