mysqlはカスタム分割機能を実装します

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;

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/ytangdigl/article/details/106644740