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

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


MySQL IF ELSE câu lệnh thực hiện một cấu trúc có điều kiện cơ bản khi biểu thức cho giá trị sai. Cú pháp của nó như sau -

 Câu lệnh IF biểu thức THEN; ELSE câu lệnh khác; KẾT THÚC IF; 

Các câu lệnh phải kết thúc bằng dấu chấm phẩy.

Để chứng minh việc sử dụng IF ELSE trong thủ tục được lưu trữ trong 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> Chọn * từ student_info; + ------ + --------- + ------------ + --------- --- + | id | Tên | Địa chỉ | Chủ đề | + ------ + --------- + ------------ + ------------ + | 101 | YashPal | Amritsar | Lịch sử || 105 | Gaurav | Jaipur | Văn học || 125 | Raman | Shimla | Máy tính | + ------ + --------- + ------------ + ------------ + 3 hàng trong bộ (0,00 giây) 

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

 mysql> DELIMITER //; mysql> CREATE PROCEDURE coursedetails_IFELSE (IN S_Subject Varchar (20), OUT S_Course varchar (50)) -> BEGIN -> DECLARE Sub Varchar (20); -> CHỌN Chủ đề VÀO SUB -> TỪ Student_info WHERE S_Subject =Chủ đề; -> IF Sub ='Computers' THEN -> SET S_Course ='B.Tech (CSE)'; -> ELSE -> SET S_Course ='Chủ đề Không có trong bảng'; -> KẾT THÚC NẾU; -> END // Truy vấn OK, 0 hàng bị ảnh hưởng (0,00 giây) 

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> Dấu phân cách; // mysql> CALL coursedetails_IFELSE ('Computers', @S_Course); Truy vấn OK, 1 hàng bị ảnh hưởng (0,00 giây) mysql> Chọn @S_Course; + ------------- + | @S_Course | + ------------- + | B.Tech (CSE) | + ------------- + 1 hàng trong bộ (0,00 giây) mysql> CALL coursedetails_IFELSE ('Lịch sử', @S_Course); Truy vấn OK, 0 hàng bị ảnh hưởng ( 0,00 giây) mysql> Chọn @S_Course; + -------------------------------- + | @S_Course | + -------------------------------- + | Chủ đề Không có trong bảng | + -------------------------------- + 1 hàng trong bộ (0,00 giây)