Postgresql 在Postgres中查找多个字符串并替换为单个字符串

Postgresql 在Postgres中查找多个字符串并替换为单个字符串,postgresql,pattern-matching,Postgresql,Pattern Matching,是否可以用以下内容进行“查找并替换” UPDATE __table__ SET __column__ = replace(__column__, ' ', '_'); 如何定义要查找的字符串数组(,,,,:“,,”)以替换为?阅读有关如何搜索要替换的字符串中的字符的部分 但这应该对你有用 UPDATE __table__ SET __column__ = regexp_replace( __column__, E'[\\s,;:]','_','g') 阅读说明如何搜索要替换的字符串中的字符的

是否可以用以下内容进行“查找并替换”

UPDATE __table__ SET __column__ = replace(__column__, ' ', '_');
如何定义要查找的字符串数组(
:“
)以替换为

阅读有关如何搜索要替换的字符串中的字符的部分

但这应该对你有用

UPDATE __table__ SET __column__ = regexp_replace( __column__, E'[\\s,;:]','_','g')
阅读说明如何搜索要替换的字符串中的字符的部分

但这应该对你有用

UPDATE __table__ SET __column__ = regexp_replace( __column__, E'[\\s,;:]','_','g')
是强大的,多才多艺的。。。慢慢来

如果可以的话,可以使用普通的(功能不那么强大和通用),这会更快

对于手头的简单案例(用另一个单个字符替换单个字符列表),使用-更简单、更快。而且更不容易出错

UPDATE tbl
SET    col =  translate(col, ',;: ', '____')
WHERE  col <> translate(col, ',;: ', '____'); -- avoid empty updates
更新tbl
设置col=translate(col,,;:
其中,col translate(col,,;:避免空更新
仅更新实际更改的行。无条件更新所有行是一个常见的错误(可能代价高昂)。详情:

请注意,这仅替换空格字符(
'
),而正则表达式中的类速记匹配所有字符类
[[:space:]

功能强大,用途广泛。。。慢慢来

如果可以的话,可以使用普通的(功能不那么强大和通用),这会更快

对于手头的简单案例(用另一个单个字符替换单个字符列表),使用-更简单、更快。而且更不容易出错

UPDATE tbl
SET    col =  translate(col, ',;: ', '____')
WHERE  col <> translate(col, ',;: ', '____'); -- avoid empty updates
更新tbl
设置col=translate(col,,;:
其中,col translate(col,,;:避免空更新
仅更新实际更改的行。无条件更新所有行是一个常见的错误(可能代价高昂)。详情:


请注意,这仅替换空格字符(
'
),而正则表达式中的类速记匹配所有字符类
[[:space:][]

使用
regexp\u replace
@CraigRinger尝试了
'{',',':','}
,例如,并没有任何运气,如果您愿意发布一个有效的答案,我很乐意接受。如果您的“字符串”实际上是单个字符,如displayed,请不要为此使用
regexp_replace()
,这将比必要的更昂贵和复杂。使用
regexp_replace
@CraigRinger使用
'{',',':','}“
例如,如果你没有任何运气,如果你愿意发布一个有效的答案,我很乐意接受。如果你的“字符串”实际上是像display一样的单个字符,不要使用
regexp\u replace()
,这将比必要的更昂贵和复杂。这很有效,谢谢!我很惊讶他们没有把它包括在
array
中,至少是指括号中的括号,尽管如果有人问这个问题,他们至少会找到这个Q/A。谢谢链接到文档;表9-16包含了有关空间的详细信息。这很有效,谢谢!我很惊讶他们没有把它包括在
array
中,至少是指括号中的括号,尽管如果有人问这个问题,他们至少会找到这个Q/A。谢谢链接到文档;表9-16包含有关空间的详细信息。