如何分割字串並迴圈遍歷 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)

更新於: 2019 年 7 月 30 日

5K+ 瀏覽量

開啟您的事業

參加課程並獲得認證

開始
廣告
© . All rights reserved.