Computer >> Máy Tính >  >> Lập trình >> MySQL

Câu lệnh IF của MySQL có thể được sử dụng như thế nào trong một thủ tục được lưu trữ?


Câu lệnh IF của MySQL thực hiện một cấu trúc có điều kiện cơ bản trong một thủ tục được lưu trữ. Cú pháp của nó như sau -

IF expression THEN
Statements;
END IF;

Nó phải kết thúc bằng dấu chấm phẩy. Để chứng minh việc sử dụng câu lệnh IF trong thủ tục được lưu trữ MySQL, chúng tôi đang tạo thủ tục được lưu trữ sau dựa trên các giá trị, như được hiển thị bên dưới, của bảng có tên ‘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)

Truy vấn sau sẽ tạo một thủ tục có tên là ‘coursedetails_IF’ có các câu lệnh IF -

mysql> DELIMITER // ;
mysql> CREATE PROCEDURE coursedetails_IF(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)';
    -> END IF;
    -> END //
Query OK, 0 rows affected (0.00 sec)

Bây giờ, chúng ta có thể thấy kết quả bên dưới khi gọi thủ tục này -

mysql> Delimiter ; //
mysql> CALL coursedetails_IF('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)