搜索&使用正则表达式在MySql中替换

时间:2014-03-15 15:58:18

标签: mysql regex

我有一行内容可能如下所示:

bla bla bla [ATTACH]123456[/ATTACH] bla bla bla
bla bla bla [ATTACH]78912[/ATTACH] bla something bla

我需要在行中搜索[ATTACH]号[/ ATTACH]的所有出现并将其替换为:

[ATTACH]123456[/ATTACH]应该成为[sharedmedia=core:attachments:123456]

...或

[ATTACH]78912[/ATTACH]应该成为[sharedmedia=core:attachments:78912]

1 个答案:

答案 0 :(得分:1)

SQL并未针对此类工作进行优化。以下可能会实现您的目标:

update table t
    set content = replace(replace(content, '[ATTACH]', '[sharedmedia=core:attachments:'
                                 ), '[/ATTACH]', ']'
                         )
    where content like '[ATTACH]%[/ATTACH]';

这假定所有出现的[ATTACH]后跟一个数字。