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

Làm cách nào để tạo một thủ tục được lưu trữ để chọn các giá trị trên cơ sở một số điều kiện từ bảng MySQL?


Chúng ta có thể tạo một thủ tục được lưu trữ với các toán tử IN và OUT để CHỌN các bản ghi, dựa trên một số điều kiện, từ bảng MySQL. Để dễ hiểu, chúng tôi đang lấy một ví dụ về một bảng có tên ‘student_info’ có dữ liệu sau -

mysql> Select * from student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Jaipur     | Literature |
| 110  | Rahul   | Chandigarh | History    |
| 125  | Raman   | Bangalore  | Computers  |
+------+---------+------------+------------+
4 rows in set (0.01 sec)

Bây giờ, bằng cách tạo thủ tục có tên là ‘select_studentinfo’ như sau, chúng ta có thể chọn các giá trị từ bảng ‘student_info’ bằng cách cung cấp giá trị của ‘id’ -

mysql> DELIMITER // ;
mysql> Create Procedure Select_studentinfo ( IN p_id INT, OUT p_name varchar(20),OUT p_address varchar(20), OUT p_subject varchar(20))
   -> BEGIN
   -> SELECT name, address, subject INTO p_name, p_address, p_subject
   -> FROM student_info
   -> WHERE id = p_id;
   -> END //
Query OK, 0 rows affected (0.03 sec)

Bây giờ, gọi thủ tục với các giá trị mà chúng tôi muốn cung cấp với điều kiện như sau -

mysql> DELIMITER ; //
mysql> CALL Select_studentinfo(110, @p_name, @p_address, @p_subject);
Query OK, 1 row affected (0.06 sec)

mysql> Select @p_name AS Name,@p_Address AS Address, @p_subject AS Subject;
+--------+------------+-----------+
| Name   | Address    | Subject   |
+--------+------------+-----------+
| Rahul  | Chandigarh | History   |
+--------+------------+-----------+
1 row in set (0.00 sec)