创建返回“ SELECT”语句结果的函数

时间:2019-05-09 23:55:56

标签: mysql mysql-workbench sql-function

有人告诉我创建一个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 ;

1 个答案:

答案 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正在将resultar.artistName的值进行比较,并从SELECT语句返回该比较的结果。