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;