在mysql中将模板智能标记替换为[tag]

jtw3ybtb  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(314)

我有一个表名templatetype,它有列名template\u text。这个模板有很多智能标记,我需要用mysql替换。
编辑op的评论:
它是一个具有大文本和多个智能标记的模板。例如: " I <<Fname>> <<Lname>>, <<UserId>> <<Designation>> of xyz organization, Proud to announce...." 这里我需要用[and>>替换它们,这样看起来

" [Fname] [Lname], [UserId] ...."
jexiocij

jexiocij1#

几个 replace 打电话应该有效:

SELECT REPLACE(REPLACE(template_text, '<<', '['), '>>', '])
FROM   template_type
xqkwcwgp

xqkwcwgp2#

根据您的评论,您的mysql版本不支持 Regex_Replace() 功能。因此,通用的解决方案是不可行的。
假设您的字符串不包含额外的 << 以及 >> ,而不是遵循 <<%>> 格式,我们可以使用 Replace() 功能。
我还添加了一个 WHERE 条件,以便我们只选择那些符合给定子字符串条件的行。

Update templateType
SET Template_Text = REPLACE(REPLACE(Template_Text, '<<', '['), '>>', ']')
WHERE Template_Text LIKE '%<<%>>%'

如果问题更复杂,你可以从这个答案中得到一些想法:https://stackoverflow.com/a/53286571/2469308

相关问题