Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何替换MySQL中包含反斜杠的字符串_Mysql_Search_Replace_Backslash - Fatal编程技术网

如何替换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.

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

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\\\\"%'