mysql自定义函数,从地区字段中提取地级市字段,其中地区字段中部分包含省、县级市、街道、市区等脏数据,以河北省提取地级市字段为例,以下为提取数据中的部分示例数据:
保定市莲池区建华大街774号
河北省保定市莲池区华电路 736 号
高碑店市世纪大街67号华贸广场
永年县公安局
秦皇岛经济技术开发区
石家庄市长安区建设北大街11号石家庄市文化广电和旅游局
自定义函数如下:
CREATE DEFINER FUNCTION `get_region_HB`(region_HB VARCHAR(255)) RETURNS varchar(255) CHARSET utf8mb4
BEGIN
DECLARE str VARCHAR(255) DEFAULT '';
DECLARE str2 VARCHAR(255) DEFAULT '';
DECLARE str3 VARCHAR(255) DEFAULT '';
DECLARE str4 VARCHAR(255) DEFAULT '';
DECLARE str5 VARCHAR(255) DEFAULT '';
DECLARE str6 VARCHAR(255) DEFAULT '';
SET @region = region_HB;
set @str = REPLACE(CONCAT(SUBSTRING_INDEX(@region,'市',1),'市'),'河北省','') ;
set @str2 = if(LENGTH(@str)<=4,@str,SUBSTR(@str,1,4));
set @str3 = if(@str2 like '%县%','',@str2);
set @str4 = if(@str3 like '%市%',@str3,'');
set @str5 = if(@str4 like '%区%','',@str4);
set @str6 =
CASE @str5
WHEN '藁城市' THEN ''
WHEN '平泉市' THEN ''
WHEN '辛集市' THEN ''
WHEN '晋州市' THEN ''
WHEN '新乐市' THEN ''
WHEN '鹿泉市' THEN ''
WHEN '遵化市' THEN ''
WHEN '迁安市' THEN ''
WHEN '武安市' THEN ''
WHEN '南宫市' THEN ''
WHEN '沙河市' THEN ''
WHEN '涿州市' THEN ''
WHEN '定州市' THEN ''
WHEN '安国市' THEN ''
WHEN '高碑店市' THEN ''
WHEN '泊头市' THEN ''
WHEN '任丘市' THEN ''
WHEN '黄骅市' THEN ''
WHEN '河间市' THEN ''
WHEN '三河市' THEN ''
WHEN '霸州市' THEN ''
WHEN '冀州市' THEN ''
WHEN '深州市' THEN ''
ELSE
@str5
END;
RETURN @str6;
END