【问题标题】:How can I replace a `'` in a string in SQL?如何在 SQL 中替换字符串中的 `'`?
【发布时间】:2019-11-09 02:03:31
【问题描述】:

我必须替换 SQL 中的特殊字符。

我的问题是 ',因为它用于 SQL 中字符串的开始和结束。

我试过了:

ID = REPLACE(ID, ''', '')
ID = REPLACE(ID, "'", "")

但两者都不起作用。我该怎么办?

【问题讨论】:

  • 这是您几乎可以肯定采取错误方法的事情之一:基本上从不需要这样做。如果将值传递给 SQL Server,则应该使用参数化查询(在这种情况下不需要转义)。如果你在 SQL Server 中传递值——这里大概就是这种情况,因为你试图用 SQL 中已经存在的值来做这个——只需使用字段或变量。 (几乎)没有需要生成动态 SQL 的用例,这样做几乎肯定会导致漏洞。

标签: sql sql-server replace


【解决方案1】:

ID = REPLACE(ID, '''', '') 可以工作。

示例数据演示:

DECLARE @ID AS VARCHAR(10) = 'Test''data';
SELECT @ID, REPLACE(@ID, '''', '')

它将删除给定字符串中的单引号。

【讨论】:

    【解决方案2】:

    使用 char 函数和 ascii 码:

    ID = REPLACE(ID, char(39), '')
    

    或双引号:

    ID = REPLACE(ID, '''', '')
    

    【讨论】:

      猜你喜欢
      • 2012-03-26
      • 2011-04-03
      • 1970-01-01
      • 2016-10-10
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      相关资源
      最近更新 更多