Som du ser - view kan inte använda variabler, det är en begränsning. Du försöker skapa en vy med exakt WHERE-villkor; konstruera CREATE VIEW-satstexten först och använd sedan förberedda uttalanden för att utföra uttalandet kommer det att hjälpa dig. Men behöver du verkligen det för att skapa, skapa och skapa en ny vy?
EDIT:Detta är innehållet i referensen i kommentaren.
Olexandr Melnyk En enkel lösning för MySQL:s begränsning av användningen av lokala variabler i vyer är att använda en funktion som returnerar variabelns värde:
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();