我周围搜索了很多,如果有人可以将我链接到解决方案或回答我的查询,那将是非常棒的。 的事情是我有一个包含很多单引号的,我无法弄清楚如何摆脱他们的PostgreSQL表,因为显然这如何从postgresql中的表中删除单引号?
update tablename set fieldname= NULL where fieldname=' ;
不会工作。
我周围搜索了很多,如果有人可以将我链接到解决方案或回答我的查询,那将是非常棒的。 的事情是我有一个包含很多单引号的,我无法弄清楚如何摆脱他们的PostgreSQL表,因为显然这如何从postgresql中的表中删除单引号?
update tablename set fieldname= NULL where fieldname=' ;
不会工作。
为了这个美好的使用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样式转义序列也是有效的。详细信息:
update tablename set fieldname= NULL where fieldname='''' ;
或
update tablename set fieldname= NULL where fieldname=E'\'' ;
他们都没有工作,不知道如果我在想念的东西在这里。 – KodeSeeker 2011-12-21 12:12:09
也许值中有空格。尝试'SELECT'*'|| fieldname || '*'FROM tablename'来检查它。 – DavidEG 2011-12-21 12:43:13
试图显示“*'*”形式的结果 – KodeSeeker 2011-12-22 05:42:54