mysql实现自定义split函数

1、自定义split函数脚本

CREATE DEFINER = `root`@`%` FUNCTION `tjdemo`.`fun_get_split_string_total`(f_string varchar(1000),f_delimiter varchar(5))
RETURNS int(11)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN 
  declare returnInt int(11); 
  if length(f_delimiter)=2  then 
     return 1+(length(f_string) - length(replace(f_string,f_delimiter,'')))/2; 
  else     
     return 1+(length(f_string) - length(replace(f_string,f_delimiter,''))); 
  end if;
END

转自:mysql split函数用法实例

说明:
tjdemo:数据库名
fun_get_split_string_total:函数名
f_string:输入参数,被split的字符串
f_delimiter:分隔符字符串
注意:只函数的分割符这符串长度只支1到2位。
如果分隔符字符串超过2位,就要使用REPLACE函数先把被split的字符串中的分隔符字符串替换成1位或2位的分隔符字符串。

如下语句是执行不了的:

select fun_get_split_string_total('aaa#option#cc#option#ddd#option#ff','#option#') as num;

如果想实现,可以使用REPLACE,如下:

select fun_get_split_string_total(REPLACE('aaa#option#cc#option#ddd#option#ff','#option#','|'),'|') as num;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ytangdigl/article/details/106644740