我搜索了很多,如果有人能够给我提供解决方案或者回答我的问题那就太好了。 问题是我有一个包含大量单引号的postgresql表格,我无法弄清楚如何去掉它们,因为这显然会
update tablename set fieldname= NULL where fieldname=' ;
无法工作。
我搜索了很多,如果有人能够给我提供解决方案或者回答我的问题那就太好了。 问题是我有一个包含大量单引号的postgresql表格,我无法弄清楚如何去掉它们,因为这显然会
update tablename set fieldname= NULL where fieldname=' ;
无法工作。
UPDATE tbl SET col = replace(col, '''', '');
regexp_replace()
快得多,而且它可以全局替换:替换所有搜索字符串的出现。要使用regexp_replace()
实现相同的效果,需要添加一个可选的第四个参数:UPDATE tbl SET col = regexp_replace(col, '''', '', 'g');
'g'
代表 "全球性"。
顺便说一下,规范的(以及 SQL 标准的)方法来转义字符串字面量中的单引号('
)是将其加倍(''
)。当然,也可以使用 Posix 风格的转义序列。请参见:
update tablename set fieldname= NULL where fieldname='''' ;
或者
update tablename set fieldname= NULL where fieldname=E'\'' ;
SELECT '*' || fieldname || '*' FROM tablename
进行检查。 - DavidEG插入到table1表(data)的值为($$这是一个字符串,里面包含了一些单引号$$)
在字符串前后使用$$。它将插入数据。
replace(col, '"', '''')
@Timothy:replace(col,'"','''')
- Erwin Brandstetter