发一个mysql的函数体,基本上主要的函数语法都有了
CREATE FUNCTION `func_getprojaddr`(projname varchar(200)) RETURNS varchar(300) CHARSET utf8
BEGIN
declare paddr varchar(300) charset utf8 default null ;
declare nofound SMALLINT ;
declare continue handler for not found set nofound=1 ;
set nofound = 0 ;
select CONCAT(p.`城区`,h.`路名`,h.`门牌号`) into paddr from zx_perpresale p
left join zx_house h on p.项目名称 is not null and p.项目名称=h.项目名称
where p.项目名称=projname limit 0,1 ;
if nofound=1 THEN
set paddr = '' ;
end if ;
RETURN paddr;
END
注意varchar类型的声明中 charset utf8 的写法,可以防止数据库默认字符集不是utf8,特别是拉丁(这个是最SB的数据库创建时的默认字符集,可以导致函数处理中文的结果完全不正常)