我试图让一个存储过程/函数返回一个设置数据类型,但是当我尝试时,我得到了#34;你的SQL语法中有一个错误...附近有一个错误。返回(' one');"。有什么指针吗?这是我第一次尝试使用存储过程...谢谢!
delimiter //
create function getset (set_type enum('a','b','c'))
returns set('one','two','three')
deterministic
begin
case set_type
when 'a'
return ('one');
when 'b'
return ('one,two');
when 'c'
return ('one,two,three');
end//
delimiter ;
答案 0 :(得分:1)
CASE
的语法是:
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
您遗漏了所有THEN
个关键字和END CASE
。它应该是:
case set_type
when 'a'
then return ('one');
when 'b'
then return ('one,two');
when 'c'
then return ('one,two,three');
end case;
错误消息清楚地表明问题在return
关键字附近。它与数据类型无关,这是语法错误。