Mysqlはsplit関数を実現します——多文字分割をサポートします

820 ワード

複数の文字列split_を分割count(str,delimiter)
DELIMITER $$

CREATE DEFINER=`root`@`%` FUNCTION `split_count`(
f_string varchar(1000),f_delimiter varchar(100)
) RETURNS int(11)
BEGIN
  return 1+(length(f_string) - length(replace(f_string,f_delimiter,''))) / length(f_delimiter);
END$$

DELIMITER ;

分割されたn番目の文字列split(str,delimiter,n)を取得し、nは1から始まり、nがsplit_より大きい場合count時に空の文字列を返す
DELIMITER $$


CREATE DEFINER=`root`@`%` FUNCTION `split`(
f_string varchar(1000),f_delimiter varchar(100),f_order int) RETURNS varchar(1000) CHARSET utf8
BEGIN
  declare result varchar(1000) default '';
  set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),reverse(f_delimiter),1));
  return result;
END$$

DELIMITER ;