有人告诉我创建一个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 ;
答案 0 :(得分:2)
这不是在SELECT
语句中分配变量结果的方式。您必须使用SELECT ... INTO variable
。
您还需要先声明该变量。
delimiter $$
create function findObject(workName VARCHAR(45)) returns VARCHAR(250)
begin
DECLARE result VARCHAR(250);
SELECT DISTINCT ar.artistName FROM artist as ar, art_object as oa
INTO result
where ar.artistCode= oa.artistCode
and oa.title= workName;
return result;
end$$
delimiter ;
SELECT result = ar.artistName
正在将result
与ar.artistName
的值进行比较,并从SELECT
语句返回该比较的结果。