MySQL memiliki dua jenis variabel yang berbeda:
-
variabel lokal (yang bukan diawali dengan
@
) diketik dengan kuat dan dicakup ke blok program tersimpan tempat mereka dideklarasikan. Perhatikan bahwa, seperti yang didokumentasikan dalamDECLARE
Sintaks : -
variabel pengguna (yang adalah diawali dengan
@
) diketik secara longgar dan disesuaikan dengan sesi. Perhatikan bahwa mereka tidak perlu atau tidak dapat dideklarasikan—cukup gunakan secara langsung.
Oleh karena itu, jika Anda mendefinisikan program tersimpan dan benar-benar menginginkan "variabel lokal", sesuai dengan kata-kata dalam pertanyaan Anda, Anda harus menghapus @
karakter dan pastikan bahwa DECLARE
pernyataan ada di awal blok program Anda. Jika tidak, untuk menggunakan "variabel pengguna", lepaskan DECLARE
pernyataan.
Selanjutnya, Anda juga perlu mengapit kueri Anda dalam tanda kurung untuk menjalankannya sebagai subkueri:
SET @countTotal = (SELECT COUNT(*) FROM nGrams);
Atau, Anda dapat menggunakan SELECT ... INTO
:
SELECT COUNT(*) INTO @countTotal FROM nGrams;