Py学习  »  DATABASE

MySQL中Create Function语句存在问题

muncieharts • 3 年前 • 1314 次点击  

我试图在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]替换了我的长数据库名称。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128957
 
1314 次点击  
文章 [ 1 ]  |  最新文章 3 年前