Mysql
在MYSQL中替換部分字元串,當只知道子字元串的起始字元,結束字元和中間的唯一字元串時?
我試圖找到一種方法來替換數據庫中的字元串的一部分,而不知道確切的子字元串內容,而不知道它如何開始、結束並在其間有一個特定的 ID 字元串。
要指定,我有 Vimeo iframe,它們位於 MySQL 數據庫表的列內的文章內容中。我需要將此列中的所有 vimeo iframe 字元串替換為另一個影片平台腳本。我有一個要使用的列表,其中包含 Vimeo ID 和新程式碼來代替現有的 Vimeo iframe,因此這為我提供了一個在搜尋時使用的唯一標識符。
問題是,一些 Vimeo url 在 URL 中添加了額外的 GET 查詢,因此我無法對 Vimeo iframe 進行 1 對 1 匹配。
我確實知道我需要替換的每個 iframe 實例都將以 開頭
<iframe
、結尾</iframe>
並包含一個特定的 Vimeo ID(即1234567
)。有沒有辦法使用 Regex 和 concat 或類似的東西來做到這一點,以便我可以用新字元串替換整個 iframe 程式碼?
測試:
UPDATE source_table SET field = CONCAT( SUBSTRING_INDEX(field, @start, 1), @replacement, SUBSTRING_INDEX(field, @end, -1) ) WHERE LOCATE(@middle, SUBSTRING_INDEX(SUBSTRING_INDEX(field, @start, -1), @end, 1))