如何在MySQL中替换包含反斜杠的字符串



我尝试从以下位置替换MySQL表中的字符串:

href="example.com"

href="https://example.com"

我知道正确的查询如何搜索和更新字符串,它工作得很好,直到我尝试用反斜杠更改字符串。没有什么是行不通的:

UPDATE `articles` SET `text` = REPLACE(`text`, 'href=\\"example.com\\"', 'href=\\"https://example.com\\"') WHERE `text` LIKE '%href=\\"example.com\\"%'

当然,我尝试了不同的变体和组合,带有转义和未转义的反斜杠,带有子句 WHERE 和没有它。所有这些变体都不起作用。什么都没有改变!

此外,当我在 PHPMyAdmin 中预运行此查询时("查找和替换"部分(,它正确找到所有包含 href=\"example.com\"> 的文章,但替换字符串向我显示与原始字符串相同的内容。

我的 CMS 还内置了搜索和替换字符串的功能,也无法更改带有反斜杠的字符串。

我完全被这个问题困住了。

您在替换搜索字符串上放置了太多反斜杠,因此找不到该字符串。 双反斜杠在表中存储为一个反斜杠,因此替换字符串时需要使用 2x 反斜杠,在 where 子句中进行搜索时需要使用 4x 反斜杠。在此处查看演示;http://sqlfiddle.com/#!9/c1e0eb/1

update articles
set text =
REPLACE(`text`, 'href=\"example.com\"', 'href=\"https://example.com\"')
where text like '%href=\\"example.com\\"%'
<</div> div class="one_answers">

这是您要更新的查询;

UPDATE `articles` 
SET `text` = REPLACE(`text`, 'href=\"example.com\"', 'href=\"https://example.com\"') 
WHERE `text` LIKE '%href=\\"example.com\\"%'

相关内容

  • 没有找到相关文章

最新更新