在 postgresql 中使用替换更新语句

Posted

技术标签:

【中文标题】在 postgresql 中使用替换更新语句【英文标题】:update statement with replace in postgresql 【发布时间】:2020-02-14 06:14:11 【问题描述】:

我的表格有以下记录

Sno  A
-    --
1   spoo74399p 
2   spoo75399p 

我想通过在 sp 之后将 oo(字母 'o')替换为空来更新上述记录 之后 所需的输出 ---------------- 斯诺A

1   sp74399p 
2   sp75399p 

【问题讨论】:

与您的问题无关,但是:Postgres 9.2 是no longer supported,您应该尽快计划升级。 【参考方案1】:
UPDATE my_table
SET A = REPLACE(A, 'spoo', 'sp');

这将更新所有记录。

为了澄清一点,这将找到“spoo”的任何实例并将它们替换为“sp”。最终结果是“sp”之后的任何“oo”都将被删除。

【讨论】:

我认为sp不应该来。'oo'替换为empty.so Replace(A,'oo','').是否正确? @Ram 您也可以将 'oo' 替换为 ''。替换较长的序列只是一个经验法则。这样,如果您在字符串的不同部分找到 'oo',它将不会被替换。 如果你想在 sp 之后用空替换 oo,请使用我的答案中的命令。如果你想用空替换任何oo,使用REPLACE(A, 'oo', '')

以上是关于在 postgresql 中使用替换更新语句的主要内容,如果未能解决你的问题,请参考以下文章

更新语句语法 (PostgreSQL-Redshift)

带有更新和选择语句的 PostgreSQL 返回表导致歧义

oracle 更新语句 插入语句

2017.7.7 postgreSQL在插入造成重复时执行更新

在 postgresql 中使用 NULL 更新 bytea 数据

postgresql:jsonb在一个查询中更新多个键