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中文網其他相關文章!