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

MySQL IF ELSEIF ELSE স্টেটমেন্ট স্টোরড প্রোসিডিউরে কীভাবে ব্যবহার করবেন?


MySQL IF ELSEIF ELSE একাধিক এক্সপ্রেশন ভিত্তিক স্টেটমেন্ট এক্সিকিউট করে। এর সিনট্যাক্স:

IF expression THEN
    statements;
ELSEIF elseif-expression THEN
    elseif-statements;
...
ELSE
    else-statements;
END IF;

স্টেটমেন্টগুলো অবশ্যই সেমিকোলন দিয়ে শেষ করতে হবে।

IF ELSEIF ELSE স্টেটমেন্টের ব্যবহার প্রদর্শনের জন্য, নিচের 'student_info' টেবিলের ডেটা ব্যবহার করে একটি স্টোরড প্রোসিডিউর তৈরি করা হচ্ছে:

mysql> Select * from student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Jaipur     | Literature |
| 125  | Raman   | Shimla     | Computers  |
+------+---------+------------+------------+
3 rows in set (0.00 sec)

নিচের কোয়ারী 'coursedetails_IF_ELSEIF' নামক প্রোসিডিউর তৈরি করবে যাতে IF ELSEIF ELSE স্টেটমেন্ট থাকে:

mysql> DELIMITER // ;
mysql> CREATE PROCEDURE coursedetails_IF_ELSEIF(IN S_Subject Varchar(20), OUT S_Course varchar(20))
    -> BEGIN
    -> DECLARE Sub Varchar(20);
    -> SELECT Subject INTO SUB
    -> FROM Student_info WHERE S_Subject = Subject;
    -> IF Sub = 'Computers' THEN
    -> SET S_Course = 'B.Tech(CSE)';
    -> ELSEIF Sub = 'History' THEN
    -> SET S_Course = 'Masters in History';
    -> ELSEIF Sub = 'Literature' THEN
    -> SET S_Course = 'Masters in English';
    -> END IF;
    -> END //
Query OK, 0 rows affected (0.00 sec)

এখন প্রোসিডিউরটি আহ্বান করলে নিচের ফলাফল দেখা যাবে:

mysql> Delimiter ; //
mysql> CALL coursedetails_IF_ELSEIF('Computers', @S_Course);
Query OK, 1 row affected (0.00 sec)
mysql> Select @S_Course;
+-------------+
| @S_Course   |
+-------------+
| B.Tech(CSE) |
+-------------+
1 row in set (0.00 sec)

mysql> CALL coursedetails_IF_ELSEIF ('Literature', @S_Course);
Query OK, 1 row affected (0.00 sec)
mysql> Select @S_Course;
+--------------------+
| @S_Course          |
+--------------------+
| Masters in English |
+--------------------+
1 row in set (0.00 sec)

  1. MySQL স্টোরড প্রোসিডিউর কীভাবে অ্যাল্টার করবেন?

  2. MySQL স্টোরড প্রোসিডিউরের ভেতরে ROLLBACK ট্রানজ্যাকশন কীভাবে করবেন?

  3. এক MySQL স্টোরড প্রোসিডিউর অন্য স্টোরড প্রোসিডিউর কল করতে পারে কিনা?

  4. MySQL-এ স্টোরড প্রোসিজার কল করে SELECT চালানো