在 MySQL 过程中拆分字符串并循环遍历值?
mysqlmysqli database
要在 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)