1.カスタム分割関数スクリプト
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分割関数の使用例
説明:
tjdemo:データベース名
fun_get_split_string_total:関数名
f_string:入力パラメーター、分割する
文字列f_delimiter:区切り文字列
注:関数のスプリッター文字列の長さのみが1〜2桁のみをサポートします。
区切り文字列が2桁を超える場合は、REPLACE関数を使用して、最初に分割文字列の区切り文字列を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;