MySQL đặt biến trong câu lệnh IF

Bạn muốn lưu một giá trị do một biểu thức tạo ra để bạn có thể tham chiếu đến nó trong một câu lệnh tiếp theo

Sử dụng biến do người dùng xác định để lưu trữ giá trị để sử dụng sau này

Bạn có thể gán một giá trị được trả về bởi câu lệnh

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
1 cho một biến do người dùng xác định, sau đó tham khảo biến đó sau trong phiên mysql của bạn. Điều này cung cấp một cách để lưu kết quả được trả về từ một câu lệnh và sau đó tham khảo nó sau trong các câu lệnh khác. Cú pháp gán giá trị cho biến người dùng trong câu lệnh
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
1 là
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
1
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
2
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
3
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
4, trong đó
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
2 là tên biến và
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
4 là giá trị mà bạn đang truy xuất. Biến có thể được sử dụng trong các câu lệnh tiếp theo bất cứ nơi nào một biểu thức được cho phép, chẳng hạn như trong mệnh đề
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
7 hoặc trong câu lệnh
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
8

Một tình huống phổ biến trong đó các biến người dùng có ích là khi bạn cần đưa ra các câu lệnh liên tiếp trên nhiều bảng có liên quan với nhau bởi một giá trị khóa chung. Giả sử bạn có bảng

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
9 với cột
mysql>SELECT @last_id := LAST_INSERT_ID[];
0 xác định từng khách hàng và bảng
mysql>SELECT @last_id := LAST_INSERT_ID[];
1 cũng có cột
mysql>SELECT @last_id := LAST_INSERT_ID[];
0 để cho biết mỗi đơn đặt hàng được liên kết với khách hàng nào. Nếu bạn có tên khách hàng và bạn muốn xóa bản ghi khách hàng cũng như tất cả các đơn đặt hàng của khách hàng, bạn cần xác định giá trị
mysql>SELECT @last_id := LAST_INSERT_ID[];
0 thích hợp cho khách hàng đó, rồi xóa các hàng khỏi cả hai bảng
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
9 và
mysql>SELECT @last_id := LAST_INSERT_ID[];
1 khớp với ID. Một cách để thực hiện việc này là trước tiên hãy lưu giá trị ID vào một biến, sau đó tham chiếu đến biến đó trong các câu lệnh
mysql>SELECT @last_id := LAST_INSERT_ID[];
6

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
6

Câu lệnh

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
1 trước đó gán một giá trị cột cho một biến, nhưng các biến cũng có thể được gán giá trị từ các biểu thức tùy ý. Câu lệnh sau xác định tổng cao nhất của các cột
mysql>SELECT @last_id := LAST_INSERT_ID[];
8 và
mysql>SELECT @last_id := LAST_INSERT_ID[];
9 trong bảng
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
90 và gán nó cho biến
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
91

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;

Một cách sử dụng khác cho biến là lưu kết quả từ

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
92 sau khi tạo một hàng mới trong bảng có cột
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
93

mysql>SELECT @last_id := LAST_INSERT_ID[];

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
92 trả về giá trị của giá trị
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
93 mới. Bằng cách lưu nó vào một biến, bạn có thể tham khảo giá trị nhiều lần trong các câu lệnh tiếp theo, ngay cả khi bạn đưa ra các câu lệnh khác tạo ra các giá trị
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
93 của riêng chúng và do đó thay đổi giá trị được trả về bởi
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
92. Kỹ thuật này sẽ được thảo luận thêm trong Chương 11

Biến người dùng giữ các giá trị đơn lẻ. Nếu bạn gán một giá trị cho một biến bằng câu lệnh trả về nhiều hàng, thì giá trị từ hàng cuối cùng sẽ được sử dụng

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
9

Nếu câu lệnh không trả về hàng nào, thì không có phép gán nào diễn ra và biến vẫn giữ nguyên giá trị trước đó của nó. Nếu biến chưa được sử dụng trước đó, giá trị đó là

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
98

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
1

Để đặt một biến rõ ràng thành một giá trị cụ thể, hãy sử dụng câu lệnh

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
99. Cú pháp
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
99 có thể sử dụng
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
3 hoặc
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
12 để gán giá trị

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
6

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
99 cũng có thể được sử dụng để gán kết quả
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
1 cho một biến, miễn là bạn viết
mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
1 dưới dạng truy vấn phụ [nghĩa là trong ngoặc đơn] và nó trả về một giá trị. Ví dụ

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
8

Giá trị của một biến nhất định sẽ tồn tại cho đến khi bạn gán cho nó một giá trị khác hoặc cho đến khi kết thúc phiên mysql của bạn, tùy theo điều kiện nào đến trước

Tên biến người dùng không phân biệt chữ hoa chữ thường

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
9

Ghi chú

Trước MySQL 5. 0, tên biến người dùng phân biệt chữ hoa chữ thường

Biến người dùng chỉ có thể xuất hiện ở những nơi cho phép biểu thức, không phải ở những nơi phải cung cấp hằng số hoặc mã định danh bằng chữ. Mặc dù thật hấp dẫn khi cố gắng sử dụng các biến cho những thứ như tên bảng, nhưng nó không hoạt động. Ví dụ: bạn có thể thử tạo một tên bảng tạm thời bằng cách sử dụng một biến như sau, nhưng nó không hoạt động

mysql>SELECT @max_limbs := MAX[arms+legs] FROM limbs;
0

Biến người dùng là một phần mở rộng dành riêng cho MySQL cho SQL tiêu chuẩn. Chúng sẽ không hoạt động với các công cụ cơ sở dữ liệu khác

Làm cách nào để đặt biến trong MySQL?

Gán biến MySQL . 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. Cách thứ hai để gán giá trị cho một biến là sử dụng câu lệnh SELECT.

Bạn có thể biến câu lệnh if thành một biến không?

Có thể sử dụng câu lệnh if-then để tạo một biến mới cho một tập hợp con các quan sát đã chọn . Đối với mỗi quan sát trong tập dữ liệu, SAS đánh giá biểu thức sau nếu. Khi biểu thức là true, câu lệnh theo sau then được thực thi.

Làm cách nào để chuyển giá trị biến trong truy vấn MySQL?

Bước đầu tiên. Sử dụng lệnh Set. SET @anyVariableName − = 'yourValue'; Bước thứ hai. Truyền một biến cho tập lệnh MySQL. Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh chọn.

Làm cách nào để khai báo và đặt biến trong MySQL?

Sau đây, chúng ta sẽ tìm hiểu về biến do người dùng định nghĩa. Chúng ta có thể đặt một số giá trị cho biến với sự trợ giúp của lệnh SET. SET @yourVariableName=value; Lưu ý − Trong câu lệnh SELECT, “yourVariableName” chứa giá trị NULL và sau khi sử dụng lệnh SET, nó chứa giá trị mà .

Chủ Đề