Đôi khi, bạn muốn chuyển một giá trị từ câu lệnh SQL này sang câu lệnh SQL khác. Để làm điều này, bạn lưu trữ giá trị trong một biến do người dùng MySQL xác định trong câu lệnh đầu tiên và tham chiếu đến nó trong các câu lệnh tiếp theo
Để tạo biến do người dùng xác định, bạn sử dụng định dạng
2, trong đóCode language: SQL [Structured Query Language] [sql]
SET @counter := 100;
3 bao gồm các ký tự chữ và số. Độ dài tối đa của biến do người dùng xác định là 64 ký tự kể từ MySQL 5. 7. 5Code language: SQL [Structured Query Language] [sql]
SET @counter := 100;
Các biến do người dùng xác định không phân biệt chữ hoa chữ thường. Nó có nghĩa là
0 vàCode language: SQL [Structured Query Language] [sql]
SET @counter := 100;
1 giống nhauCode language: SQL [Structured Query Language] [sql]
SET @counter := 100;
Bạn có thể gán biến do người dùng định nghĩa cho một kiểu dữ liệu nhất định như số nguyên, dấu phẩy động, số thập phân, chuỗi hoặc NULL
Biến do người dùng xác định được xác định bởi một khách hàng không hiển thị bởi các khách hàng khác. Nói cách khác, một biến do người dùng định nghĩa là phiên cụ thể
Lưu ý rằng các biến do người dùng xác định là phần mở rộng dành riêng cho MySQL theo tiêu chuẩn SQL. Chúng có thể không có sẵn trong các hệ thống cơ sở dữ liệu khác
gán biến MySQL
Có hai cách để gán giá trị cho biến do người dùng xác định
Cách thứ nhất là sử dụng câu lệnh
2 như sauCode language: SQL [Structured Query Language] [sql]
SET @counter := 100;
SET @variable_name := value;
Code language: SQL [Structured Query Language] [sql]
Bạn có thể sử dụng một trong hai. = hoặc = là toán tử gán trong câu lệnh SET. Ví dụ câu lệnh gán số 100 cho biến @counter
Code language: SQL [Structured Query Language] [sql]
SET @counter := 100;
Cách thứ hai để gán giá trị cho một biến là sử dụng câu lệnh SELECT. Trong trường hợp này, bạn phải sử dụng. = toán tử gán bởi vì, trong câu lệnh SELECT, MySQL coi toán tử = là toán tử bằng nhau
Code language: SQL [Structured Query Language] [sql]
SELECT @variable_name := value;
Sau khi gán, bạn có thể sử dụng biến trong câu lệnh tiếp theo khi một biểu thức được phép. g. , trong mệnh đề WHERE, câu lệnh INSERT hoặc UPDATE
Ví dụ về biến MySQL
Câu lệnh sau lấy sản phẩm đắt nhất trong bảng
3 và gán giá cho biến do người dùng xác định @msrpCode language: SQL [Structured Query Language] [sql]
SET @counter := 100;
Code language: SQL [Structured Query Language] [sql]
SELECT @msrp:=MAX[msrp] FROM products;
Câu lệnh sau sử dụng biến @msrp để truy vấn thông tin của sản phẩm đắt nhất
________số 8Đôi khi, bạn muốn chèn một hàng vào một bảng, lấy id chèn cuối cùng và sử dụng nó để chèn dữ liệu vào một bảng khác. Trong trường hợp này, bạn có thể sử dụng biến do người dùng xác định để lưu trữ id gần đây nhất được tạo bởi cột AUTO_INCREMENT như sau
Code language: SQL [Structured Query Language] [sql]
SELECT @id:=LAST_INSERT_ID[];
Biến do người dùng xác định chỉ có thể chứa một giá trị. Nếu câu lệnh SELECT trả về nhiều giá trị thì biến sẽ lấy giá trị của hàng cuối cùng trong kết quả
0Code language: SQL [Structured Query Language] [sql]
SET @counter := 100;
1Code language: SQL [Structured Query Language] [sql]
SET @counter := 100;
Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách sử dụng các biến MySQL trong câu lệnh SQL để truyền dữ liệu giữa các câu lệnh trong một .