如何替换MySQL中包含反斜杠的字符串
我尝试从以下位置替换MySQL表中的字符串:如何替换MySQL中包含反斜杠的字符串,mysql,search,replace,backslash,Mysql,Search,Replace,Backslash,我尝试从以下位置替换MySQL表中的字符串: href=\"example.com\" 到 我知道正确的查询如何搜索和更新字符串,它是完美的,直到我尝试用反斜杠更改字符串。没有什么不起作用: UPDATE `articles` SET `text` = REPLACE(`text`, 'href=\\\\"example.com\\\\"', 'href=\\\\"https://example.com\\\\"') WHERE `text` LIKE '%href=\\\\"example.
href=\"example.com\"
到
我知道正确的查询如何搜索和更新字符串,它是完美的,直到我尝试用反斜杠更改字符串。没有什么不起作用:
UPDATE `articles` SET `text` = REPLACE(`text`, 'href=\\\\"example.com\\\\"', 'href=\\\\"https://example.com\\\\"') WHERE `text` LIKE '%href=\\\\"example.com\\\\"%'
当然,我尝试了不同的变体和组合,包括转义和非转义后格,以及从句WHERE和WHERE。这些变体都不起作用。什么都没变
另外,当我在PHPMyAdmin中预运行此查询(部分“查找和替换”)时,它会正确查找包含href=\“example.com\”的所有文章,但替换的字符串显示的内容与原始字符串相同
我的CMS还内置了搜索和替换字符串的功能,也不能用反斜杠更改字符串
我完全被这个问题困住了。这是您要更新的查询
UPDATE `articles`
SET `text` = REPLACE(`text`, 'href=\\"example.com\\"', 'href=\\"https://example.com\\"')
WHERE `text` LIKE '%href=\\\\"example.com\\\\"%'
替换搜索字符串上的反斜杠太多,因此找不到该字符串。双反斜杠作为一个反斜杠存储在表中,因此在替换字符串时需要使用2x反斜杠,在where子句中执行搜索时需要使用4x反斜杠。 请看这里的演示
UPDATE `articles`
SET `text` = REPLACE(`text`, 'href=\\"example.com\\"', 'href=\\"https://example.com\\"')
WHERE `text` LIKE '%href=\\\\"example.com\\\\"%'
update articles
set text =
REPLACE(`text`, 'href=\\"example.com\\"', 'href=\\"https://example.com\\"')
where text like '%href=\\\\"example.com\\\\"%'