Các thủ tục được lưu trữ có thể truy cập và đặt các biến cục bộ, phiên và toàn cầu
Các biến cục bộ được truyền vào dưới dạng tham số hoặc được tạo bằng câu lệnh DECLARE
Sử dụng câu lệnh DECLARE với DEFAULT sẽ đặt giá trị của biến cục bộ
DECLARE myInt INT DEFAULT 0;
Bạn có thể gán giá trị cho các biến cục bộ, phiên và biến toàn cục bằng cách sử dụng câu lệnh SET
SET myInt = 5;
Câu lệnh SET của MySQL cho phép đặt nhiều biến trong một câu lệnh
SET myInt1 = 5, myInt2 = 50;
Tôi có thể CHỌN nhiều cột thành nhiều biến trong cùng một truy vấn chọn trong MySQL không?
Ví dụ
KHAI BÁO iId INT[20];
DECLARE dCreate DATETIME;
CHỌN Id VÀO iId, dateCreated VÀO dCreate
TỪ sản phẩm
Ở ĐÂU pName=iName;
cú pháp chính xác cho điều này là gì?
Tóm lược. trong hướng dẫn này, bạn sẽ học cách phát triển các thủ tục được lưu trữ trả về nhiều giá trị
Hàm được lưu trữ trong MySQL chỉ trả về một giá trị. Để phát triển các chương trình được lưu trữ trả về nhiều giá trị, bạn cần sử dụng các thủ tục được lưu trữ với tham số
SET myInt = 5;1 hoặc
SET myInt = 5;2
Nếu bạn không quen thuộc với các tham số
SET myInt = 5;1 hoặc
SET myInt = 5;2, hãy xem hướng dẫn về tham số thủ tục lưu sẵn để biết thông tin chi tiết
Ví dụ về các thủ tục được lưu trữ trả về nhiều giá trị
Hãy xem bảng
SET myInt = 5;5 trong cơ sở dữ liệu mẫu
Quy trình được lưu trữ sau đây chấp nhận số khách hàng và trả về tổng số đơn đặt hàng đã được giao, hủy, giải quyết và tranh chấp
Code language: SQL [Structured Query Language] [sql]
DELIMITER $$ CREATE PROCEDURE get_order_by_cust[ IN cust_no INT, OUT shipped INT, OUT canceled INT, OUT resolved INT, OUT disputed INT] BEGIN -- shipped SELECT count[*] INTO shipped FROM orders WHERE customerNumber = cust_no AND status = 'Shipped'; -- canceled SELECT count[*] INTO canceled FROM orders WHERE customerNumber = cust_no AND status = 'Canceled'; -- resolved SELECT count[*] INTO resolved FROM orders WHERE customerNumber = cust_no AND status = 'Resolved'; -- disputed SELECT count[*] INTO disputed FROM orders WHERE customerNumber = cust_no AND status = 'Disputed'; END
Ngoài tham số
SET myInt = 5;6, thủ tục được lưu trữ có thêm bốn tham số
SET myInt = 5;2. vận chuyển, hủy bỏ, giải quyết, và tranh chấp. Bên trong thủ tục được lưu trữ, bạn sử dụng câu lệnh
0 với hàmCode language: SQL [Structured Query Language] [sql]
CALL get_order_by_cust[141,@shipped,@canceled,@resolved,@disputed]; SELECT @shipped,@canceled,@resolved,@disputed;
1 để lấy tổng số đơn hàng tương ứng dựa trên trạng thái của đơn hàng và gán nó cho tham số tương ứng
CALL get_order_by_cust[141,@shipped,@canceled,@resolved,@disputed]; SELECT @shipped,@canceled,@resolved,@disputed;
Code language: SQL [Structured Query Language] [sql]
Để sử dụng thủ tục được lưu trữ
2, bạn chuyển mã số khách hàng và bốn biến do người dùng xác định để nhận các giá trị đầu raCode language: SQL [Structured Query Language] [sql]
CALL get_order_by_cust[141,@shipped,@canceled,@resolved,@disputed]; SELECT @shipped,@canceled,@resolved,@disputed;
Sau khi thực hiện thủ tục lưu trữ, bạn sử dụng câu lệnh
3 để xuất các giá trị của biếnCode language: SQL [Structured Query Language] [sql]
CALL get_order_by_cust[141,@shipped,@canceled,@resolved,@disputed]; SELECT @shipped,@canceled,@resolved,@disputed;
Code language: SQL [Structured Query Language] [sql]
CALL get_order_by_cust[141,@shipped,@canceled,@resolved,@disputed]; SELECT @shipped,@canceled,@resolved,@disputed;
Gọi các thủ tục được lưu trữ trả về nhiều giá trị từ PHP
Đoạn mã sau chỉ cho bạn cách gọi thủ tục lưu trữ trả về nhiều giá trị từ PHP