【问题标题】:How to replace a string by a subtring in postgres?如何用postgres中的子字符串替换字符串?
【发布时间】:2019-08-13 17:46:27
【问题描述】:

我的数据库的列中有以下文件名:/folder/path/24/24_1543250974365.wav

我想将其替换为:24_1543250974365.wav

总而言之,我需要切断路径并将其替换为字符串中最后一个“/”之后的内容。

我的想法是找到最后一次出现的“/”并从那里获取字符串到最后并进行替换,但不确定这是否是最好的方法

UPDATE tablename
SET file = REPLACE(file, file, substring('/', 1))
WHERE id=1;

我需要一个替换此列中所有数据的函数,因此我不再拥有整个路径,而只有文件名。任何帮助将不胜感激!

【问题讨论】:

    标签: postgresql replace sql-update substring


    【解决方案1】:

    您可能需要加或减 1,但这应该可行

     right(file,strpos(reverse(file),'/'))
    

    【讨论】:

    • 谢谢大哥,真的是这样,我只需要按照你说的减去 1。这个“反向”是一个很好的解决方案
    • @ALEXANDRECHAGASVIIRAJUNIOR 如果该答案解决了您的问题,那么请accept 它,以便您的问题被标记为已解决。
    【解决方案2】:

    选择右(file,position('/' in reverse(file))-1)

    【讨论】:

      猜你喜欢
      • 2015-04-26
      • 1970-01-01
      • 2015-11-13
      • 2017-03-23
      • 2020-04-05
      • 2012-04-03
      • 2013-07-23
      相关资源
      最近更新 更多