mysql拆分字符串函数

来源:互联网 发布:淘宝官方店都是正品吗 编辑:程序博客网 时间:2024/06/05 10:55

 业务需求:拆分字符串,然后将数字转换成中文描述,返回成以,分割的中文描述 

 

-- 修改结束符,防止在mysql命令行中默认分号直接运行  delimiter $$    -- 创建一个计算拆分后字符串的个数函数  drop function if exists calc_length $$  create function calc_length(str varchar(200), splitstr varchar(5)) returns int(11)  begin   return length(str)-length(replace(str, splitstr, ''))+1;  end $$    -- 创建一个模拟的split拆分字符串的函数  drop function if exists split_string $$  create function split_string(str varchar(200), splitstr varchar(5), strindex int) returns varchar(255)  begin  declare result varchar(255) default '';  set result =reverse(substring_index( reverse(substring_index(str, splitstr, strindex)), splitstr, 1));  return result;  end $$    -- 创建一个循环函数delimiter $$  drop function if exists split_model $$create function split_model(str varchar(200))  returns varchar(2000) begin  declare cnt int default 0;  declare i int default 0;  declare result  VARCHAR(2000) DEFAULT ' ';declare ab  VARCHAR(20)DEFAULT ' ';declare ac  VARCHAR(20)DEFAULT ' ';set cnt = calc_length(str, '|');    while i < cnt   do   set i = i+1;  set ab=split_string(str,'|', i);if ab='1' then set ac='CPM';elseif ab='2'  then set ac= 'CPC';elseif ab='3' then set ac='CPA';elseif ab='4' then set ac='CPT';else set ac='CPS';end if;set result=CONCAT(result,ac,','); END WHILE;return result;end $$  -- 创建一个循环函数delimiter $$  drop function if exists split_mediatype $$create function split_mediatype(str varchar(200))  returns varchar(2000) begin  declare cnt int default 0;  declare i int default 0;  declare result  VARCHAR(2000) DEFAULT ' ';declare ab  VARCHAR(20)DEFAULT ' ';declare ac  VARCHAR(20)DEFAULT ' ';set cnt = calc_length(str, ',');    while i < cnt   do   set i = i+1;  set ab=split_string(str,',', i);if ab='0' then set ac='购物';elseif ab='1'  then set ac= '游戏';elseif ab='2' then set ac='小说';elseif ab='3' then set ac='影视';elseif ab='4' then set ac='教育';elseif ab='5' then set ac='应用';else set ac='工具';end if;set result=CONCAT(result,ac,','); END WHILE;return result;end $$  -- 创建一个循环函数delimiter $$  drop function if exists split_mediauser $$create function split_mediauser(str varchar(200))  returns varchar(2000) begin  declare cnt int default 0;  declare i int default 0;  declare result  VARCHAR(2000) DEFAULT ' ';declare ab  VARCHAR(20)DEFAULT ' ';declare ac  VARCHAR(20)DEFAULT ' ';set cnt = calc_length(str, '|');    while i < cnt   do   set i = i+1;  set ab=split_string(str,'|', i);set ac= (select name_cn FROM sp_user where id=ab);set result=CONCAT(result,ac,','); END WHILE;return result;end $$  


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电工证年审过期怎么办 驾照分被扣24分怎么办 a3扣分驾照年审怎么办 考驾照色弱不过怎么办 驾照色盲通不过怎么办 换领驾驶证网上怎么办 有广州户口读书怎么办 摩托车超过上牌时间怎么办 a牌驾驶证扣分怎么办 换证体检过不去怎么办 汽车年检超时间怎么办 驾照分不够扣怎么办 换驾照违章扣分怎么办 超速50分不够怎么办 驾驶证十二分扣完怎么办 限速20超速了怎么办 驾照c1年审过期怎么办 驾驶证忘了年检怎么办 驾照快要到期了怎么办 驾照过期90天怎么办 异地驾迁回本地怎么办 驾照外地转本地怎么办 车转回老家保险怎么办 考驾照一直不过怎么办 驾照2年没考出来怎么办 驾考体检色盲怎么办 杭州居住告知单怎么办 郑州有房怎么办暂住证 郑州买车怎么办暂住证 在青岛办暂住证怎么办 异地买车暂住证怎么办 广州暂住证过期了怎么办 杭州暂住证过期了怎么办 居住卡到期了怎么办 居住卡过期了怎么办 在合肥办暂住证怎么办 在西安办暂住证怎么办 杭州没办暂住证怎么办 暂住证超过2月怎么办 机动车大本丢了怎么办 北京老年卡2018怎么办