公司网站建设需要注意事项,专门做外贸的的网站有哪些,重庆app外包,网页游戏排行榜回合制开发中使用mysql5.7版本数据库#xff0c;对于英文逗号拼接的字符串#xff0c;想要替换其中指定的字符串#xff0c;找不到数据库函数支持#xff0c;自己写了一个#xff0c;实测好用#xff01;
/*类似find_in_set,按英文逗号拆分字段,找出指定的旧字符串,替换成新字…开发中使用mysql5.7版本数据库对于英文逗号拼接的字符串想要替换其中指定的字符串找不到数据库函数支持自己写了一个实测好用
/*类似find_in_set,按英文逗号拆分字段,找出指定的旧字符串,替换成新字符串,并重新按逗号拼接返回,注意,如果原字符串首尾是英文逗号,调用此方法后会自动清除*/
CREATE DEFINERroot% FUNCTION rwgl.replace_in_set(str VARCHAR(4096), oldStr VARCHAR(255), newStr VARCHAR(255)) RETURNS varchar(4096) CHARSET utf8mb4
BEGINDECLARE result VARCHAR(4096) DEFAULT ;DECLARE temp VARCHAR(255) DEFAULT ;DECLARE pos INT DEFAULT 1;DECLARE commaPos INT DEFAULT 0;WHILE (pos LENGTH(str)) DOSET commaPos LOCATE(,, str, pos);IF commaPos 0 THENSET commaPos LENGTH(str) 1;END IF;SET temp SUBSTRING(str, pos, commaPos - pos);IF temp oldStr THENSET temp newStr;END IF;IF result THENSET result temp;ELSESET result CONCAT(result, ,, temp);END IF;SET pos commaPos 1;END WHILE;RETURN result;
END
示例:
select replace_in_set(aaa,bbb,bbbbb,cccc,bbb,嘿嘿嘿)
返回
aaa,嘿嘿嘿,bbbbb,cccc