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

问题描述 投票:0回答:1

我被告知创建一个 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 ;
mysql mysql-workbench sql-function
1个回答
4
投票

这不是在

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
语句返回比较结果。

© www.soinside.com 2019 - 2024. All rights reserved.