如何分割字符串并循环遍历 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 // Query OK, 0 rows affected (0.22 sec) mysql> DELIMITER ;
现在创建一个存储存储过程值的表。创建表的查询。
mysql> CREATE TABLE store( -> Id int NOT NULL AUTO_INCREMENT, -> allValues varchar(30), -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.63 sec)
显示表中的所有记录。查询如下
mysql> select *from store; Empty set (0.00 sec)
最初表中没有记录。让我们使用 CALL 命令调用存储过程。查询如下
mysql> call SP_SplitString('Hi,Hello,Good Morning,Bye'); Query OK, 1 row affected (1.02 sec)
在调用上述存储过程之后,让我们再次检查表记录。从表中显示所有记录的查询如下
mysql> select *from store;
以下是输出
+----+--------------+ | Id | allValues | +----+--------------+ | 1 | Hi | | 2 | Hello | | 3 | Good Morning | | 4 | Bye | +----+--------------+ 4 rows in set (0.00 sec)
广告