如何从postgresql中的表中删除单引号?

时间:2011-12-21 08:53:06

标签: sql database postgresql

我搜索了很多,如果有人可以将我链接到解决方案或回答我的查询,那将会很棒。 问题是我有一个包含大量单引号的postgresql表,我无法弄清楚如何摆脱它们,因为显然这个

  update tablename set fieldname= NULL where fieldname=' ; 

不会工作。

3 个答案:

答案 0 :(得分:15)

最好使用replace()

UPDATE tbl SET col = replace(col, '''', '');

regexp_replace()快得多,它取代了“全局” - 所有出现的搜索字符串。之前接受的answer by @beny23在这方面是错误的。它只替换了第一次出现,必须是:

UPDATE tbl SET col = regexp_replace(col, '''', '', 'g');

请注意'g'的附加参数globally。阅读string functions in the manual

除此之外:字符串文字中转义单引号')的规范(和SQL标准)方法是将它们加倍('')。当然,使用Posix样式的转义序列也可以。详细说明:

答案 1 :(得分:1)

update tablename set fieldname= NULL where fieldname='''' ;

update tablename set fieldname= NULL where fieldname=E'\'' ;

答案 2 :(得分:0)

insert into table1(data) values ($$it's a string, it's got some single quotes$$)

在字符串前后使用 $$。它将插入数据。