Heim  >  Artikel  >  Datenbank  >  Gespeicherte MySQL-Prozedur -> Aufteilung langer Zeichenfolgen

Gespeicherte MySQL-Prozedur -> Aufteilung langer Zeichenfolgen

黄舟
黄舟Original
2017-02-17 11:41:011254Durchsuche

Gespeicherte MySQL-Prozedur-->Aufteilung langer Zeichenfolgen

DELIMITER $$ -- Trennzeichen
VERWENDEN Sie „test“. $$ --
DROPPROCEDURE IF EXISTS `pro_split`$$ -- Wenn es bereits existiert, löschen Sie 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: Die Standardregel zum Aufteilen von Zeichenfolgen lautet „“,“ Wenn Sie flexibler sein möchten, können Sie einen In-Parameter festlegen und ihn beim Aufruf von proc ersetzen.

Das Obige ist der Inhalt der gespeicherten MySQL-Prozedur -> Aufteilung langer Zeichenfolgen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn). )!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn