MySQL có hai loại biến khác nhau:
-
biến cục bộ (cái nào không tiền tố là
@
) được đánh mạnh và phạm vi tới khối chương trình được lưu trữ mà chúng được khai báo. Lưu ý rằng, như được ghi lại trongDECLARE
Cú pháp : -
biến người dùng ( là tiền tố là
@
) được nhập lỏng lẻo và xác định phạm vi cho phiên. Lưu ý rằng chúng không cần và cũng không thể được khai báo — chỉ cần sử dụng chúng trực tiếp.
Do đó, nếu bạn đang xác định một chương trình được lưu trữ và thực sự muốn có "biến cục bộ", theo từ ngữ trong câu hỏi của bạn, bạn sẽ cần bỏ @
và đảm bảo rằng DECLARE
của bạn câu lệnh nằm ở đầu khối chương trình của bạn. Nếu không, để sử dụng "biến người dùng", hãy thả DECLARE
tuyên bố.
Hơn nữa, bạn sẽ cần đặt truy vấn của mình trong dấu ngoặc đơn để thực thi nó như một truy vấn con:
SET @countTotal = (SELECT COUNT(*) FROM nGrams);
Hoặc nếu không, bạn có thể sử dụng SELECT ... INTO
:
SELECT COUNT(*) INTO @countTotal FROM nGrams;