在MySQL 中將逗號分隔的字串分割為臨時表
使用MySQL,無法直接分割逗號分隔的字串使用正規表示式寫入臨時表。這是因為 MySQL 缺少內建的分割字串功能。
解
由於直接分割不可行,您可以採用多種解決方法:
1。使用自訂函數拆分
您可以在 MySQL 中建立自訂函數以將字串分割為單獨的值。例如:
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, '');
2。使用循環
在循環中呼叫自訂函數並遞增位置,直到返回空值:
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; # Insert into temp table here with str going into the row insert into my_temp_table values (str); END LOOP simple_loop; END $$
3.腳本語言整合
或者,您可以使用PHP 等腳本語言來分割字串並執行必要的操作。
結論
雖然MySQL缺乏專用的分割字串函數,但這些解決方法使您能夠有效地將逗號分隔的字串解析到臨時表中。選擇最適合您的要求和偏好的方法。
以上是如何將逗號分隔的字串拆分到 MySQL 臨時表中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!