Seperti yang Anda lihat - tampilan tidak dapat menggunakan variabel, ini adalah batasan. Anda mencoba membuat tampilan dengan kondisi WHERE yang tepat; buat teks pernyataan CREATE VIEW terlebih dahulu, lalu gunakan pernyataan yang disiapkan untuk mengeksekusi pernyataan, itu akan membantu Anda. Tapi, apakah Anda benar-benar membutuhkannya, untuk membuat, membuat, dan membuat tampilan baru?
EDIT:Ini adalah isi referensi di komentar.
Olexandr Melnyk Solusi sederhana untuk batasan MySQL pada penggunaan variabel lokal dalam tampilan adalah dengan menggunakan fungsi, yang mengembalikan nilai variabel:
create function book_subject
returns varchar(64) as
return @book_subject;
create view thematical_books as
select title
, author
from books
where subject = book_subject();