拆分字符串并循环遍历 MySQL 过程中的值?
要拆分字符串并循环遍历MySQL过程中的所有值,您不需要使用REPLACE()函数。要理解,首先创建一个存储过程,然后创建一个表并使用一些值调用存储过程。该值将被插入到表中。
创建存储过程的查询如下:
mysql> DELIMITER // mysql> CREATE PROCEDURE SP_SplitString(Value longtext) -> BEGIN -> DECLARE front TEXT DEFAULT NULL; -> DECLARE frontlen INT DEFAULT NULL; -> DECLARE TempValue TEXT DEFAULT NULL; -> iterator: -> LOOP -> IF LENGTH(TRIM(Value)) = 0 OR Value IS NULL THEN -> LEAVE iterator; -> END IF; -> SET front = SUBSTRING_INDEX(Value,',',1); -> SET frontlen = LENGTH(front); -> SET TempValue = TRIM(front); -> INSERT INTO store (allValues) VALUES (TempValue); -> SET Value = INSERT(Value,1,frontlen + 1,''); -> END LOOP; -> END // mysql> DELIMITER ;
现在创建一个表来存储存储过程的值。创建表的查询。
mysql> CREATE TABLE store( -> Id int NOT NULL AUTO_INCREMENT, -> allValues varchar(30), -> PRIMARY KEY(Id) -> );
显示表中的所有记录。查询如下:
mysql> select *from store; Empty set (0.00 sec)
最初我们在表中没有任何记录。让我们使用CALL命令调用存储过程。查询如下:
mysql> call SP_SplitString('Hi,Hello,Good Morning,Bye');
调用完上面的存储过程后,让我们再次检查表记录。显示表中所有记录的查询如下:
mysql> select *from store;
以下是输出:
+----+--------------+ | Id | allValues | +----+--------------+ | 1 | Hi | | 2 | Hello | | 3 | Good Morning | | 4 | Bye | +----+--------------+ 4 rows in set (0.00 sec)