স্টোরড প্রোসিজারে শর্তসাপেক্ষ কোয়েরির জন্য IF ELSE কনসেপ্ট ব্যবহার করুন। প্রথমে দুটি টেবিল তৈরি করি:
mysql> CREATE TABLE DemoTable1 (Id INT); mysql> INSERT INTO DemoTable1 VALUES(10), (20), (30); mysql> CREATE TABLE DemoTable2 (Id INT); mysql> INSERT INTO DemoTable2 VALUES(40), (50), (60);
স্টোরড প্রোসিজার তৈরি করুন:
mysql> DELIMITER //
mysql> CREATE PROCEDURE Conditional_Query(id INT)
BEGIN
IF id >= 40 THEN
SELECT * FROM DemoTable2;
ELSE
SELECT * FROM DemoTable1;
END IF;
END //
mysql> DELIMITER ;
প্রোসিজার কল করুন (প্যারামিটার ১০০ দিয়ে):
mysql> CALL Conditional_Query(100);
আউটপুট (DemoTable2):
+------+ | Id | +------+ | 40 | | 50 | | 60 | +------+
আরেকবার কল করুন (প্যারামিটার ১৩ দিয়ে):
mysql> CALL Conditional_Query(13);
আউটপুট (DemoTable1):
+------+ | Id | +------+ | 10 | | 20 | | 30 | +------+
ব্যাখ্যা: প্রোসিজারটি ইনপুট প্যারামিটার id গ্রহণ করে। যদি id >= 40 হয়, তবে DemoTable2-এর ডেটা দেখাবে, অন্যথায় DemoTable1-এর ডেটা। এটি ডাইনামিক কোয়েরি বিল্ড করার সহজ উদাহরণ।
ব্যবহার ক্ষেত্র: রিপোর্ট জেনারেশন, রোল-ভিত্তিক ডেটা এক্সেস, ফিচার ফ্ল্যাগ ইত্যাদিতে এই প্যাটার্ন ব্যবহার করা হয়।