Mysql截取字符串split函数的实现以及使用范例
日前,统计数据的时候发现需要字符串分隔,MySql中并没有类似Java的split函数,但是我们可以利用length()函数、replace() 2个函数创建一个自定义的split函数,sql很简单,该函数定义也是DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging的错误解决方案之一。
(本文章分享在CSDN平台,更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217)
split函数:
CREATE FUNCTION `split`(
inputStr varchar(1000),seperatorStr varchar(50)
) RETURNS int(11)
######这两行告诉MySql该函数不会修改数据(尤其对数据库权限只有自读权限的账户是非常有用的)
READS SQL DATA
DETERMINISTIC
######
BEGIN
#####返回替换前长度减去用""替换后的长度得到seperatorStr的个数。
return (length(inputStr) - length(replace(inputStr,seperatorStr,"")));
END
split函数测试脚本,返回#的个数:
SELECT splitTermTotal("1#2#3","#")
2
length(str)函数测试,该函数返回str的长度:
SELECT LENGTH("1#2#3")
5
replace(strContent, oldStr,newStr)函数测试,用于将strContent串中的oldStr全部替换为newStr:
select replace("1#2#3","#","")
123
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。