delimiter $$ -- 分隔符
use`test`$$ --
dropprocedure if exists `pro_split`$$ -- 如果已經存在則刪除proc
create procedure `test`.`pro_split` (varchar rids)
begin
declarepo int default 0; -- 定義乙個位置點
declarerid varchar(20) default ""; -- 定義乙個rid變數
declarerid_tmp varchar(20) default "";
set po= locate(",",rids); -- 找到第乙個,的位置點
set rid=left(po-1,rids); -- 截取出第乙個rid
setrid_tmp=substr(rids,po+1); -- 設定剩下還沒有處理的rids長字串
whilepo >0 do -- 開始迴圈處理rids長字串
insertinto b_tmp select pid,rid; --把擷取出來的rid放入臨時表中
set po =locate(",",rid_tmp); -- 獲取未處理中的長字串的,的第乙個位置點
set rid=left(po-1,rid_tmp); --取出每乙個迴圈中擷取出來的rid
setrid_tmp=substr(rid_tmp,po+1); -- 重新設定未處理的長字串。
endwhile ;
end$$
delimiter;
ps:這個是預設的字串扯分規則是「,」,如果想變成靈活一些的,可以設定乙個in 引數,在呼叫proc的時候代入即可。
MySQL儲存過程 長字串扯分
delimiter 分隔符use test dro ppro cedu reif exis ts p rosp lit 如果已經存在則刪除 proc create procedure test pro split varchar rids begin declarepo int default 0 ...
mysql字串拼接,儲存過程
mysql concat函式可以連線乙個或者多個字串,如 select concat 10 結果 10 select concat 11 22 33 結果 112233 mysql的concat函式在連線字串的時候,只要其中乙個是null,那麼將返回null select concat 11 22 ...
mysql 字串分割儲存過程
drop procedure if exists splitstr create procedure splitstr in str varchar 255 out substr varchar 2000 out idstr varchar 100 begin declare index var v...