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

xfyts7mz  于 11个月前  发布在  PostgreSQL
关注(0)|答案(2)|浏览(195)

有没有可能用下面的代码来做一个“查找和替换”?

UPDATE __table__ SET __column__ = replace(__column__, ' ', '_');

字符串
如何定义一个字符串数组(','';'':'' ')来替换为'_'

kb5ga3dv

kb5ga3dv1#

regexp_replace()功能强大,用途广泛...而且速度慢。
尽可能使用普通的(功能不太强大和通用的)replace(),它更快。
对于手头的简单情况(将列表中的每个字符替换为另一个字符),使用**translate()**-更简单,更快,也更不容易出错。

UPDATE tbl
SET    col =  translate(col, ',;: ', '____')
WHERE  col <> translate(col, ',;: ', '____'); -- avoid empty updates

字符串
仅更新实际发生更改的行。无条件更新所有行是一个常见的错误(可能代价高昂)。详细信息:

  • 我如何(或者我可以)在多个列上选择DISTINCT?

请注意,' '只替换空格字符(' '),而正则表达式中的类简写\s匹配字符类[[:space:]]的所有whitespace characters

z4iuyo4d

z4iuyo4d2#

请阅读有关“替换表达式”的部分,该部分解释了如何在字符串中搜索要替换的字符
但这个应该对你有用

UPDATE __table__ SET __column__ = regexp_replace( __column__, E'[\\s,;:]','_','g')

字符串

相关问题