我尝试从以下位置替换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和without。所有这些变体都不起作用。什么都没变!
另外,当我在phpmyadmin中预运行这个查询(“查找和替换”部分)时,它会正确地查找所有包含href=\“example.com\”的文章,但替换的字符串显示的内容与原始字符串相同。
我的cms也有搜索和替换字符串的内置功能,也不能用反斜杠改变字符串。
我完全被这个问题困住了。
2条答案
按热度按时间ltskdhd11#
替换搜索字符串上的反斜杠太多,因此找不到该字符串。双反斜杠作为一个反斜杠存储在表中,因此在替换字符串时需要使用2x反斜杠,在where子句中执行搜索时需要使用4x反斜杠。请看这里的演示;http://sqlfiddle.com/#!9/c1e0eb/1号机组
bkkx9g8r2#
这是您要更新的查询;