MySQL替换单反斜杠

时间:2012-08-08 15:08:19

标签: mysql

尝试替换大型数据库中的单个反斜杠。是要在一列上运行Update Replace查询,但我无法弄清楚如何替换单个反斜杠。有一些糟糕的更新已完成,这些斜线需要更改为另一个角色,它们不会逃避任何事情,也不会执行任何相关功能。

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

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

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

我试过了:

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

我得到了:

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

2 个答案:

答案 0 :(得分:2)

REPLACE( )不需要转义

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

更新1

我认为你想永久地替换它。对?使用UPDATE而不是SELECT

UPDATE tableName
SET    columnName = replace(columnName, '\\', '#');

答案 1 :(得分:-1)

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

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

输出:

A\\\\B\\C

所以这会奏效:

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

见过HERE