我试图在MySQL中创建一个函数,该函数将根据字段中是否存在特定字符串返回一个值。我的select语句最终需要进行多次评估,所以我想创建一个函数来提高效率。这是我的代码:
create function [dbname].id_datasource
(descval varchar(100))
returns varchar(10)
begin
declare datasource varchar(10) default ''
select datasource =
case when descval like 'CLT%' or descval like '%CLT%' then 'CLT'
when descval like 'PCB%' or descval like '%PCB%' then 'PCB'
else 'NA' end
return (datasource)
end
我得到了这个错误:
SQL错误[1064][42000]:您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解可在“选择数据源”附近使用的正确语法=
第6行类似于'CLT%'的descval或类似于'%CLT%'th'的descval时的情况
注意:它要求我为我的函数输入一个db名称前缀——如果没有它,它会返回“no database selected”——我确实用上面的[dbname]替换了我的长数据库名称。