是否有可能在MySQL中创建一个SQL视图,它将输入变量视为函数参数?我在MySQL网站上找到了这个标题,但我不确定如何使用它,因为我对SQL函数很新.当我在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();
Run Code Online (Sandbox Code Playgroud)
您收到错误,因为CREATE FUNCTION语法不正确(必须喜欢那些MySQL手册用户评论!).创建此函数的正确语法如下:
CREATE FUNCTION book_subject()
RETURNS VARCHAR(64)
RETURN @subject;
Run Code Online (Sandbox Code Playgroud)
该CREATE VIEW语法是正确的.
要使用该视图,您需要@book_subject在从视图中选择之前设置变量:
SET @book_subject = 'Epic Poems';
Run Code Online (Sandbox Code Playgroud)
那么当你做一个:
SELECT *
FROM thematical_books;
Run Code Online (Sandbox Code Playgroud)
它将返回所有具有"史诗诗"主题的书籍的标题和作者
这是解决MySQL视图限制的一个技巧,"[视图]的SELECT语句不能引用系统或用户变量." 您使用仅返回变量的函数,并且每次使用视图时都会调用该函数.
| 归档时间: |
|
| 查看次数: |
5849 次 |
| 最近记录: |