SQL UPDATE用空字符串替换括号内的所有文本

时间:2018-06-06 09:49:29

标签: sql postgresql sql-update

在下面的查询列中,我想删除括号及其中的文本。

示例数据(id,查询):

25, some data (example1) more text
28, text (example2)

转换为:

25, some data more text
28, text

我已尝试过以下SQL,但值未更改:

UPDATE mytable
SET query = REPLACE(query, '%(%)%', '')
WHERE query like '%(%)%';

2 个答案:

答案 0 :(得分:1)

我会使用regexp_replace()作为:

来解决这个问题
select regexp_replace('some data (example1) more text', '\(.*\)', '')

您只需将表达式放在set子句中:

UPDATE mytable
     SET query = regexp_replace(query, '\(.*\)', '')
WHERE query like '%(%)%';

答案 1 :(得分:0)

试试这个

replace(regexp_replace('some data (example1) more text', '(?<=\()(.*?)(?=\))', ''), '()', '');

demo