【问题标题】:SQL Statement to UPDATE three characters in a stringSQL 语句更新字符串中的三个字符
【发布时间】:2013-11-28 23:57:18
【问题描述】:

如何从名为'link'的列中的一行中获取一个字符串,并通过在字符串中的特定索引位置添加三个字母来修改它。

具体例子:

我想使用 SQL 语句选择值 'http://www.hello.no'UPDATE'http://www-x1.hello.no'
假设“-x1”开始的索引位置将始终为 10。

这需要使用 PostgreSQL 来完成。但是,如果您可以使用通用 SQL 语句捕获逻辑,那就太好了。 :)

【问题讨论】:

    标签: sql database postgresql stored-procedures database-migration


    【解决方案1】:

    这可以满足您的要求:

    update the_table
       set the_column = left(the_column, 10) || '-x1' || substring(the_column, 10);
    

    但是我不确定这是否是您想要的。看来您想在第一个 . 前面插入 '-x1',这会有所不同。

    【讨论】:

      【解决方案2】:

      Postgresql 有一个用称为regexp_replace 的模式进行替换的功能。您可以像这样使用该功能:

      UPDATE my_table
      SET link = regexp_replace(link, 'www', 'www-x1')
      WHERE <...>
      

      当然你也可以用直接的字符串操作来做到这一点:

      UPDATE my_table
      SET link = left(link, 10) || '-x1' || substring(link from 10)
      WHERE <...>
      

      【讨论】:

        猜你喜欢
        • 2017-02-08
        • 2016-08-11
        • 2013-09-22
        • 1970-01-01
        • 2017-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多