如您所见-视图不能使用变量,这是一个限制。您正在尝试创建一个具有确切WHERE条件的视图;首先构造CREATE VIEW语句文本,然后使用准备好的语句执行该语句,它将为您提供帮助。但是,您真的需要它来创建,创建和创建新视图吗?
编辑:这是注释中参考的内容。
奥列克山大·梅尔尼克对MysqL的意见中对局部变量使用限制一个简单的解决方法是使用一个函数,返回变量的值:
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();