Thủ tục mysql đặt nhiều biến

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

Thủ tục mysql đặt nhiều biến
Thủ tục mysql đặt nhiều biến

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

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

Code language: SQL (Structured Query Language) (sql)

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

CALL get_order_by_cust(141,@shipped,@canceled,@resolved,@disputed); SELECT @shipped,@canceled,@resolved,@disputed;

Code language: SQL (Structured Query Language) (sql)
0 với hàm

CALL get_order_by_cust(141,@shipped,@canceled,@resolved,@disputed); SELECT @shipped,@canceled,@resolved,@disputed;

Code language: SQL (Structured Query Language) (sql)
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

Để sử dụng thủ tục được lưu trữ

CALL get_order_by_cust(141,@shipped,@canceled,@resolved,@disputed); SELECT @shipped,@canceled,@resolved,@disputed;

Code language: SQL (Structured Query Language) (sql)
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 ra

Sau khi thực hiện thủ tục lưu trữ, bạn sử dụng câu lệnh

CALL get_order_by_cust(141,@shipped,@canceled,@resolved,@disputed); SELECT @shipped,@canceled,@resolved,@disputed;

Code language: SQL (Structured Query Language) (sql)
3 để xuất các giá trị của biến

CALL get_order_by_cust(141,@shipped,@canceled,@resolved,@disputed); SELECT @shipped,@canceled,@resolved,@disputed;

Code language: SQL (Structured Query Language) (sql)
Thủ tục mysql đặt nhiều biến
Thủ tục mysql đặt nhiều biến

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

/** * Call stored procedure that return multiple values * @param $customerNumber */ function call_sp($customerNumber) { try { $pdo = new PDO("mysql:host=localhost;dbname=classicmodels", 'root', ''); // execute the stored procedure $sql = 'CALL get_order_by_cust(:no,@shipped,@canceled,@resolved,@disputed)'; $stmt = $pdo->prepare($sql); $stmt->bindParam(':no', $customerNumber, PDO::PARAM_INT); $stmt->execute(); $stmt->closeCursor(); // execute the second query to get values from OUT parameter $r = $pdo->query("SELECT @shipped,@canceled,@resolved,@disputed") ->fetch(PDO::FETCH_ASSOC); if ($r) { printf('Shipped: %d, Canceled: %d, Resolved: %d, Disputed: %d', $r['@shipped'], $r['@canceled'], $r['@resolved'], $r['@disputed']); } } catch (PDOException $pe) { die("Error occurred:" . $pe->getMessage()); } } call_sp(141);

Code language: PHP (php)

Các biến do người dùng xác định, đứng trước ký hiệu

CALL get_order_by_cust(141,@shipped,@canceled,@resolved,@disputed); SELECT @shipped,@canceled,@resolved,@disputed;

Code language: SQL (Structured Query Language) (sql)
4, được liên kết với kết nối cơ sở dữ liệu, do đó, chúng có sẵn để truy cập giữa các cuộc gọi

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách phát triển một thủ tục lưu trữ trả về nhiều giá trị và cách gọi nó từ PHP

Làm cách nào để khai báo nhiều biến trong thủ tục lưu trữ MySQL?

Để khai báo một biến trong thủ tục lưu trữ, bạn sử dụng câu lệnh DECLARE như sau. .
KHAI BÁO kiểu dữ liệu tên_biến(kích thước) [DEFAULT default_value];.
KHAI BÁO tổng doanh thu THÁNG 12 (10,2) MẶC ĐỊNH 0. 0;.
KHAI BÁO x, y INT MẶC ĐỊNH 0;.
SET tên_biến = giá trị;.
KHAI BÁO tổng INT MẶC ĐỊNH 0;

Làm cách nào để SET nhiều giá trị trong MySQL?

MySQL Chèn nhiều hàng .
Đầu tiên, chỉ định tên của bảng mà bạn muốn chèn sau từ khóa INSERT INTO
Thứ hai, chỉ định danh sách cột được phân tách bằng dấu phẩy bên trong dấu ngoặc đơn sau tên bảng
Thứ ba, chỉ định danh sách dữ liệu hàng được phân tách bằng dấu phẩy trong mệnh đề GIÁ TRỊ. Mỗi phần tử của danh sách đại diện cho một hàng

Làm cách nào để SET giá trị thành biến trong thủ tục được lưu trữ?

Các biến trong thủ tục SQL được xác định bằng cách sử dụng câu lệnh DECLARE. Có thể gán giá trị cho biến bằng cách sử dụng câu lệnh SET hoặc câu lệnh SELECT INTO hoặc làm giá trị mặc định khi khai báo biến . Chữ, biểu thức, kết quả của một truy vấn và các giá trị thanh ghi đặc biệt có thể được gán cho các biến.

Làm cách nào để SET các biến hệ thống MySQL?

Các biến hệ thống có thể được đặt khi khởi động máy chủ bằng các tùy chọn trên dòng lệnh hoặc trong tệp tùy chọn . Hầu hết chúng có thể được thay đổi linh hoạt trong thời gian chạy bằng cách sử dụng câu lệnh SET, cho phép bạn sửa đổi hoạt động của máy chủ mà không cần phải dừng và khởi động lại máy chủ.