牛骨文教育服务平台(让学习变的简单)
博文笔记

Mysql截取字符串split函数的实现以及使用范例

创建时间:2016-11-14 投稿人: 浏览次数:2395

日前,统计数据的时候发现需要字符串分隔,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
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。