Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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 使用phpMyAdmin查找https:\/\/并替换为http:\/\/_Mysql_Regex_Phpmyadmin - Fatal编程技术网

Mysql 使用phpMyAdmin查找https:\/\/并替换为http:\/\/

Mysql 使用phpMyAdmin查找https:\/\/并替换为http:\/\/,mysql,regex,phpmyadmin,Mysql,Regex,Phpmyadmin,我在phpmyadmin中遇到查找/替换失败的问题。我认为这一定与数据库中URL中的反斜杠转义有关,我没有正确解释或转义查询中的反斜杠 数据按如下方式存储在meta\u value列的wpiv\u postemta表中,URL中的斜杠转义: (more data) [{"ddl-repeat-id":"4","logo":"https:\/\/example.com\/uploads\/2016\/01\/mypng.png"} (more data) 我需要删除URL中的s。我正在使用

我在phpmyadmin中遇到查找/替换失败的问题。我认为这一定与数据库中URL中的反斜杠转义有关,我没有正确解释或转义查询中的反斜杠

数据按如下方式存储在
meta\u value
列的
wpiv\u postemta
表中,URL中的斜杠转义:

(more data)   [{"ddl-repeat-id":"4","logo":"https:\/\/example.com\/uploads\/2016\/01\/mypng.png"}  (more data)
我需要删除URL中的
s
。我正在使用

UPDATE wpiv_postmeta SET meta_value = replace(meta_value, 'https:\/\/example.com', 'http:\/\/example.com');
但是当我在phpMyAdmin中模拟它时,没有得到匹配的行

我不想运行它,因为它太贪婪了:

UPDATE wpiv_postmeta SET meta_value = replace(meta_value, 'https:', 'http:');

如何在更新查询中转义或取消转义斜杠?

由于SQL解析器在处理查询字符串时删除了一级转义,因此必须加倍转义:

SELECT ... WHERE foo LIKE '%\a%' // find any 'a' in the db
SELECT ... WHERE foo LIKE '%\\a%' // find any '\a' in the db
所以你需要

... REPLACE(meta_evalue, 'http:\\/\\/', 'http://') ...

您必须进行双重转义,因为SQL解析器在处理查询字符串时会删除一级转义:

SELECT ... WHERE foo LIKE '%\a%' // find any 'a' in the db
SELECT ... WHERE foo LIKE '%\\a%' // find any '\a' in the db
所以你需要

... REPLACE(meta_evalue, 'http:\\/\\/', 'http://') ...

啊,很有趣,很高兴知道。这就是为什么在phpmyadmin中,我看到尝试的查询是https:\\\\\/\\\\\\\/或带有更多的。我在学习。谢谢啊,很有趣,很高兴知道。这就是为什么在phpmyadmin中,我看到尝试的查询是https:\\\\\/\\\\\\\/或带有更多的。我在学习。谢谢