【MySQL基础】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

你可能感兴趣的:(【Mysql集萃】)