MySQL SELECT INTO Variable
Bài viết này sẽ hướng dẫn bạn lưu các kết quả truy vấn vào biến sử dụng SELECT INTO variables
Cú pháp MySQL SELECT INTO Variable
SELECT 
    c1, c2, c3, ...
INTO 
    @v1, @v2, @v3,...
FROM 
    table_name
WHERE 
    condition;
Giải thích cú pháp:
- c1, c2, và c3 là các cột hoặc biểu thức mà bạn muốn select và lưu vào biến.
- @v1, @v2, và @v3 là các biến lưu giá trị của c1, c2 và c3.
Số lượng biến phải giống số lượng cột hoặc biểu thức. Thêm nữa là truy vấn phải trả về 0 hoặc 1 row.
Nếu truy vấn trả về 0 row, MySQL sẽ báo warning và giá trị biến không hề thay đổi.
Trong trường hợp truy vấn trả về nhiều row, MySQL báo 1 error. Và để đảm bảo truy vấn lúc nào cũng trả về 1 row, thì bạn sử dụng LIMIT 1.
Ví dụ sử dụng MySQL SELECT INTO Variable
Chúng ta sẽ sử dụng bảng customers trong database mẫu để làm ví dụ:

Ví dụ MySQL SELECT INTO single variable
Ví dụ sau lấy city của khách hàng có number là 103 và lưu vào biến @city:
SELECT 
    city
INTO
    @city
FROM 
    customers
WHERE 
    customerNumber = 103;
Xem giá tị biến @city:
SELECT 
    @city;
Ví dụ MySQL SELECT INTO multiple variables
Để lưu nhiều giá trị vào nhiều biến, bạn sử dụng dấu phẩy để tách biệt. Ví dụ sau tìm kiếm city và country của khách hàng có number là 103 và lưu vào 2 biến tương ứng là @city và @country:
SELECT 
    city,
    country 
INTO
    @city,
    @country
FROM 
    customers
WHERE 
    customerNumber = 103;
Xem giá trị 2 biến @city và @country:
SELECT 
    @city, 
    @country;

Ví dụ MySQL SELECT INTO variable – multiple rows
Lệnh sau sẽ báo error vì truy vấn trả về nhiều rows:
SELECT 
    creditLimit
INTO
    @creditLimit
FROM 
    customers
WHERE 
    customerNumber > 103;
Kết quả:
Error Code: 1172. Result consisted of more than one row
Để sửa lỗi, thì sử dụng LIMIT 1:
SELECT 
    creditLimit
INTO
    @creditLimit
FROM 
    customers
WHERE 
    customerNumber > 103
LIMIT 1;
Như vậy là các bạn có thể sử dụng MySQL SELECT INTO variable để lưu các kết quả trong truy vấn và lưu vào biến, để sử dụng cho lần sau.
Hi vọng bài viết hữu ích cho các bạn.
Hãy like, share và comment để cùng nhau học nhé.