Comme vous le voyez, la vue ne peut pas utiliser de variables, c'est une limitation. Vous essayez de créer une vue avec la condition WHERE exacte ; construisez d'abord le texte de l'instruction CREATE VIEW, puis utilisez déclarations préparées pour exécuter l'instruction, cela vous aidera. Mais, en avez-vous vraiment besoin, pour créer, créer et créer de nouvelles vues ?
EDIT :Ceci est le contenu de la référence dans le commentaire.
Olexandr Melnyk Une solution simple à la limitation de MySQL sur l'utilisation des variables locales dans les vues consiste à utiliser une fonction qui renvoie la valeur de la variable :
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();