Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tách chuỗi và duyệt giá trị trong MySQL Stored Procedure

Để tách chuỗi và lặp qua các giá trị trong procedure, không cần REPLACE(). Tạo procedure, tạo bảng, gọi procedure với chuỗi phân cách bằng dấu phẩy.

Tạo stored procedure SP_SplitString:

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 ;

Tạo bảng store:

mysql> CREATE TABLE store( -> Id int NOT NULL AUTO_INCREMENT, -> allValues varchar(30), -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.63 sec)

Gọi procedure:

mysql> call SP_SplitString('Hi,Hello,Good Morning,Bye'); Query OK, 1 row affected (1.02 sec)

Kết quả bảng store:

mysql> select *from store;
+----+--------------+ | Id | allValues | +----+--------------+ | 1 | Hi | | 2 | Hello | | 3 | Good Morning | | 4 | Bye | +----+--------------+ 4 rows in set (0.00 sec)