NEWS

[DATABASE] Hướng dẫn tạo Procedure String Split in Mysql

[DATABASE] Hướng dẫn tạo Procedure String Split in Mysql
Đăng bởi: Thảo Meo - Lượt xem: 2915 07:51:56, 16/01/2023DATABASE   In bài viết

Xin chào các bạn, bài viết hôm nay mình hướng dẫn các bạn viết Store Procedure Hàm String_Split trong Mysql server.

[DATABASE] STRING_SPLIT IN MYSQL SERVER

Trên SQL server, có cung cấp cho chúng ta hàm STRING_SPLIT dùng để tách một chuỗi thành từng dòng trên database.

mysql_thub

  • Trong Mysql, khi các bạn tạo hàm Function thì nó chỉ hỗ trợ các bạn trả về dữ liệu là một chuỗi, không hỗ trợ trả về 1 Table như trong Sqlserver.

Trên Mysql, các bạn tạo cho mình một procedure splitString với nội dung bên dưới:

DELIMITER //

CREATE PROCEDURE splitString(
  IN inputString text,
  IN delimiterChar CHAR(1)
)
BEGIN
  DROP TEMPORARY TABLE IF EXISTS temp_string;
  CREATE TEMPORARY TABLE temp_string(vals text); 
  WHILE LOCATE(delimiterChar,inputString) > 1 DO
    INSERT INTO temp_string SELECT SUBSTRING_INDEX(inputString,delimiterChar,1);
    SET inputString = REPLACE(inputString, (SELECT LEFT(inputString, LOCATE(delimiterChar, inputString))),'');
  END WHILE;
  INSERT INTO temp_string(vals) VALUES(inputString);
  SELECT TRIM(vals) FROM temp_string;
END; //

DELIMITER ;

Kết quả khi tách sẽ đưa dữ liệu vào một table Temp.

Thực hiện chạy Procedure trên:

CALL splitString('1,2,3', ',');

-- Output:
+------------+
| TRIM(vals) |
+------------+
| 1          |
| 2          |
| 3          |
+------------+

CALL splitString('hello ; laptrinhvb.net ; thaomeo', ';');

-- Output:
+------------------+
| TRIM(vals)       |
+------------------+
| hello            |
| laptrinhvb.net   |
| thaomeo          |
+------------------+

Thanks for watching!

THÔNG TIN TÁC GIẢ

[DATABASE] Hướng dẫn tạo Procedure String Split in Mysql
Đăng bởi: Thảo Meo - Lượt xem: 2915 07:51:56, 16/01/2023DATABASE   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp