mysql implementa la función de división personalizada

1. Secuencia de comandos de función de división personalizada

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

Transferir desde: ejemplo de uso de la función dividida de mysql

Descripción:
tjdemo: nombre de la base de datos
fun_get_split_string_total: nombre de la función
f_string: parámetro de entrada, la cadena que se dividirá
f_delimiter: cadena delimitador
Nota: solo la longitud de la cadena de caracteres divisores de la función solo admite de 1 a 2 dígitos.
Si la cadena delimitadora excede los 2 dígitos, use la función REPLACE para reemplazar primero la cadena delimitadora en la cadena dividida con una cadena delimitadora de 1 o 2 dígitos.

La siguiente declaración no se puede ejecutar:

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

Si desea lograrlo, puede usar REPLACE, de la siguiente manera:

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

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/ytangdigl/article/details/106644740
Recomendado
Clasificación