mysql 函式 儲存過程

2021-07-05 18:01:42 字數 1798 閱讀 1940

set global log_bin_trust_function_creators = 1;

#1. 函式func_splitstringtotal:將字串按指定方式分割,並計算單元總數

drop function if exists `func_get_splitstringtotal` ;

create function `func_get_splitstringtotal`( 

f_string varchar(10000),f_delimiter varchar(50) 

) returns int(11) 

begin 

return 1+(length(f_string) - length(replace(f_string,f_delimiter,''))); 

end;

select func_get_splitstringtotal('1,2,3,4,5,6,7',',');

#2.函式func_splitstring:將字串按指定方式分割,獲取指定位置的數

drop function if exists `func_splitstring` ;

create function `func_splitstring` 

( f_string varchar(1000),f_delimiter varchar(5),f_order int) 

returns varchar(255) charset utf8 

begin

declare result varchar(255) default ''; 

set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1)); 

return result; 

end;

select func_splitstring('1,2,3,4,5,6,7',',',5);#取第五個值

#3.過程splitstring 將字串分割,並放到臨時表tmp_split 裡面

drop procedure if exists `splitstring` ;

create procedure `splitstring` 

(in f_string varchar(1000),

in f_delimiter varchar(5))

begin 

declare cnt int default 0; 

declare i int default 0; 

set cnt = func_get_splitstringtotal(f_string,f_delimiter); 

drop table if exists `tmp_split`; 

create temporary table `tmp_split` (`val_` varchar(128) not null) default charset=utf8;

while i < cnt 

do set i = i + 1; 

insert into tmp_split(`val_`) values (func_splitstring(f_string,f_delimiter,i));  

end while; 

end;

#呼叫儲存過程

call splitstring('a,s,d,f,g,h,j',','); 

#檢視呼叫結果

select * from tmp_split;

MySql儲存過程與儲存函式

在開發過程種常常會重複使用某些sql語句,為此mysql sdsd 先建立乙個表 create table user insert user username,password values jacklove qqqqqq insert user username,password values u...

MySQL儲存過程和儲存函式

儲存過程和儲存函式 mysql的儲存過程 stored procedure 和函式 stored function 統稱為stored routines。1.儲存過程和函式的區別 函式只能通過return語句返回單個值或者表物件。而儲存過程不允許執行return,但是通過out引數返回多個值。函式是...

mysql 過程和函式 MySQL 儲存過程和函式

變數 系統變數 變數由系統提供,不是使用者自定義的,屬於伺服器層面 全域性變數 會話變數 如果是全域性級別,則需要加global,如果是會話級別,則需要加session,如果不寫,則預設是會話 檢視全域性變數 show global variables show global variablesli...