【问题标题】:How do I remove single quotes from a table in postgresql?如何从 postgresql 中的表中删除单引号?
【发布时间】:2011-12-21 08:53:05
【问题描述】:

我搜索了很多,如果有人可以将我链接到解决方案或回答我的问题,那就太好了。 问题是我有一个包含很多单引号的 postgresql 表,我不知道如何摆脱它们,因为显然这个

  update tablename set fieldname= NULL where fieldname=' ; 

不会工作。

【问题讨论】:

    标签: sql database postgresql


    【解决方案1】:

    最好使用replace()

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

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

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

    注意“全局”的附加参数'g'。阅读string functions in the manual

    另外:在字符串文字中转义单引号 (') 的规范(和SQL 标准)方法是将它们加倍('')。当然,使用 Posix 风格的转义序列也可以。详情:

    【讨论】:

    • 双引号换成单引号怎么样?
    • @Timothy: replace(col, '"', '''')
    【解决方案2】:
    update tablename set fieldname= NULL where fieldname='''' ;
    

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

    【讨论】:

    • 两个都没用,不知道是不是漏掉了什么。
    • 可能值中有空格。试试SELECT '*' || fieldname || '*' FROM tablename看看吧。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 2021-10-28
      • 2021-04-28
      • 1970-01-01
      相关资源
      最近更新 更多