2011-12-21 54 views
2

我周圍搜索了很多,如果有人可以將我鏈接到解決方案或回答我的查詢,那將是非常棒的。 的事情是我有一個包含很多單引號的,我無法弄清楚如何擺脫他們的PostgreSQL表,因爲顯然這如何從postgresql中的表中刪除單引號?

update tablename set fieldname= NULL where fieldname=' ; 

不會工作。

回答

14

爲了這個美好的使用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
update tablename set fieldname= NULL where fieldname='''' ; 

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

他們都沒有工作,不知道如果我在想念的東西在這裏。 – KodeSeeker 2011-12-21 12:12:09

+1

也許值中有空格。嘗試'SELECT'*'|| fieldname || '*'FROM tablename'來檢查它。 – DavidEG 2011-12-21 12:43:13

+0

試圖顯示「*'*」形式的結果 – KodeSeeker 2011-12-22 05:42:54