我尝试从以下位置替换MySQL表中的字符串:
org.springframework.boot:spring-boot-starter-jdbc
到
href=\"example.com\"
我知道正确的查询如何搜索和更新字符串,它是完美的,直到我尝试用反斜杠更改字符串。什么都行不通:
href=\"https://example.com\"
当然,我尝试了不同的变种和组合与转义和未转义的后退,使用子句WHERE和没有它。这些所有变体都不起作用。什么都没有变化!
此外,当我在PHPMyAdmin(“查找和替换”部分)中预先运行此查询时,它正确查找包含 href = \“example.com \”的所有文章,但替换了字符串显示与原始字符串相同的内容。
我的CMS也有内置的搜索和替换字符串功能,也无法使用反斜杠更改字符串。
我完全坚持这个问题。
答案 0 :(得分:1)
这是您要更新的查询;
UPDATE `articles`
SET `text` = REPLACE(`text`, 'href=\\"example.com\\"', 'href=\\"https://example.com\\"')
WHERE `text` LIKE '%href=\\\\"example.com\\\\"%'
答案 1 :(得分:1)
您在替换搜索字符串上放了太多反斜杠,因此找不到该字符串。双反斜杠在表中存储为一个反斜杠,因此在替换字符串时需要使用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\\\\"%'