首頁 >資料庫 >mysql教程 >如何將逗號分隔的字串拆分到 MySQL 臨時表中?

如何將逗號分隔的字串拆分到 MySQL 臨時表中?

Linda Hamilton
Linda Hamilton原創
2024-12-07 09:34:11398瀏覽

How Can I Split Comma-Separated Strings into a MySQL Temporary Table?

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

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