有没有可能用下面的代码来做一个“查找和替换”?
UPDATE __table__ SET __column__ = replace(__column__, ' ', '_');
字符串如何定义一个字符串数组(',',';',':',' ')来替换为'_'?
','
';'
':'
' '
'_'
kb5ga3dv1#
regexp_replace()功能强大,用途广泛...而且速度慢。尽可能使用普通的(功能不太强大和通用的)replace(),它更快。对于手头的简单情况(将列表中的每个字符替换为另一个字符),使用**translate()**-更简单,更快,也更不容易出错。
regexp_replace()
replace()
translate()
UPDATE tbl SET col = translate(col, ',;: ', '____') WHERE col <> translate(col, ',;: ', '____'); -- avoid empty updates
字符串仅更新实际发生更改的行。无条件更新所有行是一个常见的错误(可能代价高昂)。详细信息:
请注意,' '只替换空格字符(' '),而正则表达式中的类简写\s匹配字符类[[:space:]]的所有whitespace characters。
\s
[[:space:]]
z4iuyo4d2#
请阅读有关“替换表达式”的部分,该部分解释了如何在字符串中搜索要替换的字符但这个应该对你有用
UPDATE __table__ SET __column__ = regexp_replace( __column__, E'[\\s,;:]','_','g')
字符串
2条答案
按热度按时间kb5ga3dv1#
regexp_replace()
功能强大,用途广泛...而且速度慢。尽可能使用普通的(功能不太强大和通用的)
replace()
,它更快。对于手头的简单情况(将列表中的每个字符替换为另一个字符),使用**
translate()
**-更简单,更快,也更不容易出错。字符串
仅更新实际发生更改的行。无条件更新所有行是一个常见的错误(可能代价高昂)。详细信息:
请注意,
' '
只替换空格字符(' '
),而正则表达式中的类简写\s
匹配字符类[[:space:]]
的所有whitespace characters。z4iuyo4d2#
请阅读有关“替换表达式”的部分,该部分解释了如何在字符串中搜索要替换的字符
但这个应该对你有用
字符串