在Postgres中无法替换字符串

时间:2018-03-13 09:34:23

标签: sql postgresql

我的模板由 email_template 表加载。我尝试用Postgres REPLACE替换这个模板中的一些元素。像这样的东西

注意: content 列:varchar

UPDATE email_template SET content = replace (content,
                '
                    <td><a href="https://www.facebook.com/"><img src="http://www.postgresqltutorial.com/" alt="Facebook"/></a></td>
                    <td><a href="https://www.facebook.com/"><img src="http://www.postgresqltutorial.com/" alt="Facebook 1"/></a></td>
                    <td><a href="https://www.facebook.com/"><img src="http://www.postgresqltutorial.com/" alt="Facebook 2"/></a></td>
                    <td><a href="https://www.facebook.com/"><img src="http://www.postgresqltutorial.com/" alt="Facebook 3"/></a></td>
                ',
                '   <td><a href="https://www.youtube.com/"><img src="http://www.postgresqltutorial.com/" alt="Youtube"/></a></td>
                    <td><a href="https://www.youtube.com/"><img src="http://www.postgresqltutorial.com/" alt="Youtube 1"/></a></td>
                    <td><a href="https://www.youtube.com/"><img src="http://www.postgresqltutorial.com/" alt="Youtube 2"/></a></td>
                    <td><a href="https://www.youtube.com/"><img src="http://www.postgresqltutorial.com/" alt="Youtube 3"/></a></td>
                ') WHERE template_id=1;

问题是内容行中的模板太长。 sql查询没有错,但在email_template表中没有更新。仍存储旧值:(

有没有人有这方面的解决方案?感谢。

1 个答案:

答案 0 :(得分:0)

据我所知,只需将facebook更新为youtube即可,对吗?

UPDATE email_template
   SET content =
          REGEXP_REPLACE (content,
                          'facebook',
                          'Youtube',
                          'gi') WHERE template_id=1;