Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Gán biến tạm thời trong MySQL

Cách 1: Dùng SET

SET @tenBien = (SELECT cot FROM bang WHERE dieu_kien);

Cách 2: Dùng SELECT ... INTO

SELECT cot INTO @tenBien FROM bang WHERE dieu_kien;

Ví dụ hoàn chỉnh

Tạo bảng và dữ liệu

mysql> CREATE TABLE tempVariableAssignment (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(20),
    Age INT
);
mysql> INSERT INTO tempVariableAssignment(Name,Age) VALUES
    ('John',25),('Carol',26),('Sam',28),('David',19),('Bob',23);

Gán biến với SET

mysql> SET @findAge = (SELECT Age FROM tempVariableAssignment WHERE Id=4);
Query OK, 0 rows affected (0.02 sec)
mysql> SELECT @findAge;
+----------+
| @findAge |
+----------+
| 19       |
+----------+

Gán biến với SELECT INTO

mysql> SELECT Age INTO @anotherAge FROM tempVariableAssignment WHERE Id=4;
Query OK, 1 row affected (0.00 sec)
mysql> SELECT @anotherAge;
+-------------+
| @anotherAge |
+-------------+
| 19          |
+-------------+

Đặc điểm biến người dùng (User-defined variables)

  • Tiền tố @ (ví dụ: @findAge)
  • Phạm vi: phiên làm việc hiện tại (session)
  • Không cần khai báo kiểu dữ liệu
  • Có thể dùng trong các truy vấn sau đó trong cùng session

Lưu ý: Subquery trong SET phải trả về đúng 1 giá trị (single row, single column).