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

Làm thế nào để khai báo một biến trong MySQL cho một truy vấn thông thường?

Bạn có thể khai báo một biến bằng cách sử dụng @anyVariablename là một biến phiên. Để tạo một biến phiên, bạn cần sử dụng lệnh SET.

Cú pháp như sau

SET @anyVariableName:=anyValue;

Bạn có thể khai báo một biến cục bộ bằng lệnh DECLARE. Cú pháp như sau

DECLARE yourVariableName datatype

Bạn có thể đặt giá trị mặc định tại thời điểm tạo biến. Cú pháp như sau

DECLARE yourVariableName datatype default ‘yourValue’

Đây là bản demo của biến phiên. Để hiểu nó, chúng ta hãy tạo một bảng.

Truy vấn để tạo bảng như sau

mysql> create table SessionVariableDemo
   -> (
   -> EmployeeId varchar(10),
   -> EmployeeName varchar(30),
   -> EmployeeAge int
   -> );
Query OK, 0 rows affected (0.70 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau

mysql> insert into SessionVariableDemo values('EMP-101','Carol',30);
Query OK, 1 row affected (0.20 sec)

mysql> insert into SessionVariableDemo values('EMP-102','John',26);
Query OK, 1 row affected (0.20 sec)

mysql> insert into SessionVariableDemo values('EMP-103','Bob',25);
Query OK, 1 row affected (0.19 sec)

mysql> insert into SessionVariableDemo values('EMP-104','Sam',32);
Query OK, 1 row affected (0.14 sec)

mysql> insert into SessionVariableDemo values('EMP-105','Mike',35);
Query OK, 1 row affected (0.11 sec)

mysql> insert into SessionVariableDemo values('EMP-106','David',33);
Query OK, 1 row affected (0.15 sec)

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 select. Truy vấn như sau

mysql> select *from SessionVariableDemo;

Sau đây là kết quả

+------------+--------------+-------------+
| EmployeeId | EmployeeName | EmployeeAge |
+------------+--------------+-------------+
| EMP-101    | Carol        |          30 |
| EMP-102    | John         |          26 |
| EMP-103    | Bob          |          25 |
| EMP-104    | Sam          |          32 |
| EMP-105    | Mike         |          35 |
| EMP-106    | David        |          33 |
+------------+--------------+-------------+
6 rows in set (0.00 sec)

Bây giờ, tạo một biến phiên bằng lệnh SET. Sau đó, chúng tôi sẽ sử dụng biến này trong truy vấn để lấy tất cả hồ sơ nhân viên có tuổi lớn hơn 30.

Hãy để chúng tôi tạo một biến phiên bằng lệnh SET

mysql> set @AgeGreaterThan30:=30;
Query OK, 0 rows affected (0.00 sec)

Đây là truy vấn sẽ sử dụng biến phiên để lấy các bản ghi nhân viên có tuổi lớn hơn 30

mysql> select *from SessionVariableDemo where EmployeeAge > @AgeGreaterThan30;

Sau đây là kết quả

+------------+--------------+-------------+
| EmployeeId | EmployeeName | EmployeeAge |
+------------+--------------+-------------+
| EMP-104    | Sam          |          32 |
| EMP-105    | Mike         |          35 |
| EMP-106    | David        |          33 |
+------------+--------------+-------------+
3 rows in set (0.00 sec)