【发布时间】:2016-12-11 15:04:24
【问题描述】:
在我的数据库中,我遇到了如何转义单引号的问题,导致每次保存记录时它们都会加倍。我现在已经解决了这个问题,但我需要清理它造成的混乱。
所以我想知道用一个单引号替换所有超过撇号的实例最直接的方法是什么。因此,例如将 ''''''' 替换为 '
表格中有许多不同数量的实例。
【问题讨论】:
-
你能展示一些示例数据和预期的结果吗?
标签: sql sql-server
在我的数据库中,我遇到了如何转义单引号的问题,导致每次保存记录时它们都会加倍。我现在已经解决了这个问题,但我需要清理它造成的混乱。
所以我想知道用一个单引号替换所有超过撇号的实例最直接的方法是什么。因此,例如将 ''''''' 替换为 '
表格中有许多不同数量的实例。
【问题讨论】:
标签: sql sql-server
试试下面这个技巧
UPDATE yourTable
SET columnName = REPLACE(REPLACE(REPLACE(columnName,'''','<>'),'><',''),'<>','''')
这个技巧在用相应的单个实例替换任何字符的多个连续实例时非常方便。我在SO 上找到了这个,用于用单个空格替换多个空格字符实例。
【讨论】:
这涉及到很多单引号:
update t
set col = replace(col, '''''', '''');
-----------------------------^^** ^^
第一个单引号字符串有六个单引号,第二个有四个。
^^ 和 ** 显示代表单引号的双引号。
【讨论】: