假设您的所有标签格式正确,以下代码应该可以解决问题。请在针对生产副本运行之前进行彻底测试。
UPDATE post
SET pagetext = REPLACE(pagetext, SUBSTR(pagetext, INSTR(pagetext,':'), INSTR(pagetext, ']') - INSTR(pagetext,':')), '')
WHERE pagetext LIKE '[%:%]';
这是我用于非常有限的测试的SQL Fiddle 。
编辑
这个脚本应该正确处理前面的[]
情况:
UPDATE post
SET pagetext = REPLACE(pagetext, SUBSTR(pagetext, @c1:=INSTR(pagetext,':'), LOCATE(']', pagetext, @c1) - @c1), '')
WHERE pagetext LIKE '[%:%]';
更新小提琴
编辑#2
我的WHERE
条款太严格了。这是一个稍微更新的脚本:
UPDATE post
SET pagetext = REPLACE(pagetext, SUBSTR(pagetext, @c1:=INSTR(pagetext,':'), LOCATE(']', pagetext, @c1) - @c1), '')
WHERE pagetext LIKE '%[%:%]%';
我更改了Fiddle以更新另一列 ( newtext
),因此更容易判断结果。