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;
-- 定義乙個位置點
declarerid varchar(20) default "";
-- 定義乙個
rid變數
declarerid_tmp varchar(20) default "";
set po= locate(",",rids);
-- 找到第乙個
,的位置點
set rid=left(po-1,rids);
-- 截取出第乙個
ridsetrid_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 dropprocedure if exists pro split 如果已經存在則刪除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...