我被告知创建一个 mysql 函数,给定艺术品标题,返回创建者的名字。我知道这听起来很傻,我可以只使用一个选择。
我遵循了一些教程,但没有一个对我有帮助。当我尝试创建该函数时,mysql工作台显示“错误代码:1415。不允许从函数返回结果集”
这就是我正在尝试做的事情
delimiter $$
create function findObject(workName VARCHAR(45)) returns VARCHAR(250)
begin
SELECT result= ar.artistName FROM artist as ar, art_object as oa
where ar.artistCode= oa.artistCode
and oa.title= workName
group by ar.artistName ;
return result;
end$$
delimiter ;
这不是在
SELECT
语句中分配变量结果的方式。你必须使用SELECT ... INTO variable
。
您还需要先声明变量。
delimiter $$
create function findObject(workName VARCHAR(45)) returns VARCHAR(250)
begin
DECLARE result VARCHAR(250);
SELECT DISTINCT ar.artistName
INTO result
FROM artist as ar
JOIN art_object as oa ON ar.artistCode = oa.artistCode
where oa.title = workName;
return result;
end$$
delimiter ;
SELECT result = ar.artistName
正在将 result
的值与 ar.artistName
进行比较,并从 SELECT
语句返回比较结果。