6

尝试替换大型数据库中的单个反斜杠。打算在一列上运行更新替换查询,但我不知道如何替换单个反斜杠。完成了一些糟糕的更新,这些斜线需要更改为另一个字符,它们没有转义任何内容,也没有执行任何相关功能。

SELECT
REPLACE (
    "Some\s string\s with slashe\s",
    '\\',
    '  something  '
)

当我运行它时,输出是:“Somes strings with slashes”

有没有办法在一个斜杠上进行真正的替换?无论我在 replace 参数中添加什么,它只是消除了单个反斜杠,但实际上并没有替换它。不确定这是一个错误还是我只是错过了一些东西。

我试过了:

SELECT
REPLACE (
    "Some\s string\s with slashe\s",
    '\',
    '  something  '
)

我得到:

[Err] 1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '\')' 附近使用正确的语法

4

2 回答 2

3

REPLACE( )不需要逃避

select replace("Some\s string\s with slashe\s", '\\', '  something  ');

更新 1

我想你想永久更换它。对?UPDATE不使用SELECT

UPDATE tableName
SET    columnName = replace(columnName, '\\', '#');
于 2012-08-08T15:20:45.020 回答
-2

replace() 的参数不需要转义:

选择替换('A\B\C', '\', '\');

输出:

A\\\\B\\C

所以这将起作用:

select Name from T where Name = replace('A\\B\C', '\', '\\');

如这里所见

于 2012-08-08T15:18:46.777 回答