首頁 >資料庫 >mysql教程 >如何使用正規表示式將逗號分隔的字串拆分為 MySQL 臨時表?

如何使用正規表示式將逗號分隔的字串拆分為 MySQL 臨時表?

Patricia Arquette
Patricia Arquette原創
2024-12-19 21:38:13143瀏覽

How to Split a Comma-Separated String into a MySQL Temp Table Using Regular Expressions?

MySQL 使用正規表示式將逗號分隔的字串分割為臨時表

MySQL 缺乏專用的分割字串函數,需要其他方法。一種方法涉及透過迭代自訂函數來模擬拆分。

自訂分割函數

以下函數在位置 pos 處拆分由 delim 分隔的字串 x:

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');

循環並插入到臨時文件中表

要迭代分割字串並將其插入到臨時表中,請使用LOOP 語句:

DELIMITER $$

CREATE PROCEDURE ABC(fullstr)

   BEGIN
      DECLARE a INT Default 0 ;
      DECLARE str VARCHAR(255);
      simple_loop: LOOP
         SET a=a+1;
         SET str=SPLIT_STR(fullstr,"|",a);
         IF str='' THEN
            LEAVE simple_loop;
         END IF;
         #Do Inserts into temp table here with str going into the row
         insert into my_temp_table values (str);
   END LOOP simple_loop;
END $$

注意: 使用下列腳本語言PHP 執行此類任務可能比僅依賴MySQL 更有效率。

以上是如何使用正規表示式將逗號分隔的字串拆分為 MySQL 臨時表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn