MySql分割字符串【存储过程】

DELIMITER $$

USE `数据库`$$

DROP PROCEDURE IF EXISTS `split`$$

CREATE DEFINER=`Sa_scmone`@`%` PROCEDURE `split`(IN _string VARCHAR(300))
BEGIN 
 # 求分割符号','的位置
DECLARE _index INT;
 
#使用临时表存储分割后的结果
DROP TEMPORARY TABLE IF EXISTS tmp_strs;
CREATE TEMPORARY TABLE tmp_strs(
str INT(10) UNSIGNED
);
 
SET _index = LOCATE(',',_string);
WHILE _index > 0
DO
INSERT INTO tmp_strs VALUES(LEFT(_string,_index-1));#将子字符串存入临时表
SET _string =SUBSTR(_string FROM _index+1);
SET _index = LOCATE(',',_string);
END WHILE;
 
IF LENGTH(_string) >= 0 THEN
INSERT INTO tmp_strs VALUES(_string);
END IF;

END$$

DELIMITER ;

  

测试代码:

CALL split('1,2,3,4,5'); 
SELECT * FROM tmp_strs

  

结果:

str
--------
1
2
3
4
5

猜你喜欢

转载自www.cnblogs.com/vincentvoid/p/9267084.html