我有以下格式被接納進入我的存儲過程打破存儲過程中串入臨時表中的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
謝謝。這裏有趣的是,我的第一個想法是「我回答了一個非常類似的問題,曾經......」 –