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

Làm cách nào để tạo thủ tục lưu trữ MySQL với tham số IN?


Để hiểu rõ, chúng tôi đang sử dụng bảng có tên ‘student_info’ có các giá trị sau -

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

Bây giờ, với sự trợ giúp của truy vấn sau, chúng tôi sẽ tạo một thủ tục được lưu trữ với tham số IN sẽ hiển thị tất cả thông tin chi tiết của một học sinh cụ thể bằng cách cung cấp tên làm tham số.

mysql> DELIMITER // ;
mysql> Create PROCEDURE detail(IN S_Name VARCHAR(20))
    -> BEGIN
    -> SELECT * From Student_info WHERE Name = S_Name;
    -> END //
Query OK, 0 rows affected (0.16 sec)
mysql> DELIMITER ;

S_Name là tham số IN của thủ tục được lưu trữ ‘chi tiết’. Nếu chúng tôi muốn xem tất cả chi tiết về tên sinh viên ‘Gaurav’ thì có thể thực hiện việc này với sự trợ giúp của truy vấn sau -

mysql> CALL detail('Gaurav');
+-----+--------+---------+------------+
| id  | Name   | Address | Subject    |
+-----+--------+---------+------------+
| 105 | Gaurav | Jaipur  | Literature |
+-----+--------+---------+------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

mysql> CALL detail('Raman');
+-----+-------+---------+-----------+
| id  | Name  | Address | Subject   |
+-----+-------+---------+-----------+
| 125 | Raman | Shimla  | Computers |
+-----+-------+---------+-----------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)