我有以下格式被接纳进入我的存储过程打破存储过程中串入临时表中的MySQL
hat=blue,yellow:=:jacket=leather,jean:=:shoes=nike,puma,umbro,converse
所以我愿意接受这一点,并把它插入到一个临时表作为
product | inventory
-------------------
hat | blue
-------------------
hat | yellow
-------------------
jacket | leather
-------------------
jacket | jean
-------------------
shoes | nike
-------------------
shoes | puma
-------------------
shoes | umbro
-------------------
shoes | converse
-------------------
所以我有以下存储过程接受这一点,但我努力将其分解成部分(新的到mysql)
这里举一个例子Split a string and loop through values in MySql Procedure d为修改它有点
DELIMITER $$
DROP PROCEDURE IF EXISTS `inventoryHandle` $$
CREATE PROCEDURE `inventoryHandle`(_list MEDIUMTEXT)
BEGIN
DECLARE _next TEXT DEFAULT NULL;
DECLARE _nextlen INT DEFAULT NULL;
DECLARE _value TEXT DEFAULT NULL;
CREATE TEMPORARY TABLE productInventory (
product VARCHAR(50) NOT NULL
, inventory VARCHAR(50) NOT NULL
);
iterator:
LOOP
IF LENGTH(TRIM(_list)) = 0 OR _list IS NULL THEN
LEAVE iterator;
END IF;
SET _next = SUBSTRING_INDEX(_list,':=:',1); -- gets me the hats=blue,yellow string
SET _nextlen = LENGTH(_next);
SET _value = TRIM(_next);
INSERT INTO productInventory (product, inventory) VALUES (***); -- not sure how to handle here
SET _list = INSERT(_list,1,_nextlen + 1,'');
END LOOP;
END $$
DELIMITER ;
*“采取示例”* [确实](https://stackoverflow.com/a/37231257/1695906)。请记得提供归属地。 –
是的,我现在添加了归属地 - 谢谢 – jedgard
谢谢。这里有趣的是,我的第一个想法是“我回答了一个非常类似的问题,曾经......” –