替换动态文本SQL

时间:2012-10-28 16:11:16

标签: sql design-patterns dynamic replace

任何人都可以帮我解决一些我无法解决的问题。我正在尝试更新php_text

中的bbcode标记
Exemple [i] => [i:rlj7bc53]
Exemple [u] => [u:rlj7bc53]
Exemple [b] => [/b:rlj7bc53]

[quote="Christo"] => [quote="Christo":rlj7bc53]

目前我已经使用了这个请求。

update phpbb_posts
   set post_text = replace(post_text, '[/quote]' , '[/quote:rlj7bc53]')

1 个答案:

答案 0 :(得分:0)

在运行更新之前测试它:

SELECT post_text as [OldTag]
      ,'[' + SUBSTRING(post_text, 2, (LEN(post_text) - 2)) + ':rlj7bc53]' AS [NewTag]
FROM phpbb_posts

实际更新:

UPDATE phpbb_posts
SET post_text = '[' + SUBSTRING(post_text, 2, (LEN(post_text) - 2)) + ':rlj7bc53]'

请注意,他将通过向其添加:rlj7bc53来更新该列上[和]之间的所有文本。 如果要替换列上的ONLY特定标记,可以执行以下操作:

  UPDATE phpbb_posts
  SET post_text = '[' + SUBSTRING(post_text, 2, (LEN(post_text) - 2)) + ':rlj7bc53]'
  WHERE post_text = [i]
     OR post_text = [u]
     OR post_text = [/quote]