0
是否可以批量刪除兩個已知標記之間的文本內容?Sql批量刪除兩個標記之間的文本內容
我需要這樣做以避免手動編輯600個帖子。
內容將被刪除處於這種形式:
[:en] content to remove [:]
除了要除去我需要也消除了標誌物的含量[:EN]和[:]在WordPress表wp_post和wp_content。
是否可以批量刪除兩個已知標記之間的文本內容?Sql批量刪除兩個標記之間的文本內容
我需要這樣做以避免手動編輯600個帖子。
內容將被刪除處於這種形式:
[:en] content to remove [:]
除了要除去我需要也消除了標誌物的含量[:EN]和[:]在WordPress表wp_post和wp_content。
你真正想要的是一個更新語句,用於刪除列中的文本而不是刪除語句(刪除行)。你可以用這個醜陋的變通途徑:
UPDATE yourTable
SET yourColumn = CONCAT(
SUBSTR(yourColumn, 1, INSTR(yourColumn, '[:en]') - 1),
SUBSTR(yourColumn, INSTR(SUBSTR(yourColumn, INSTR(yourColumn, '[:en]')), '[:]')
+ INSTR(yourColumn, '[:en]') + 3)
)
WHERE yourColumn LIKE '%[:en]%[:]%'
其背後的原因:發現的指標[:EN]和第一[:]後的[:EN](僅取子後[:]],但是被刪除的長度必須在[:]的長度加上+3),然後取出前後的子字符串和concat。
改寫爲select語句證明它的工作原理:SQLFiddle