1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
DELIMITER $$
DROP PROCEDURE IF EXISTS `explode`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `explode`( strDelimiter VARCHAR(255),
strToExplode VARCHAR(255))
BEGIN
SET @str = strToExplode;
SET @endExplode = false;
WHILE @endExplode = false DO
#On récupére la valeur précédent la premiére virgule de la chaine.
SET @subStr = substring_index(@str, strDelimiter, 1);
#On retire la premiére parti de la chaine et sa virgule.
SET @str = substring(@str, locate(strDelimiter, @str)+1);
SELECT @subStr ;
IF
locate(strDelimiter, @str) = 0
THEN
SELECT @str ;
SET @endExplode = true;
END IF;
END WHILE;
END$$
#Exemple
CALL explode(',', '12,18,25,7,6,914')$$ |
Partager