使用 phpMyAdmin 查找 https:\/\/ 并替换为 http:\/\/
Find https:\/\/ and replace with http:\/\/ using phpMyAdmin
我在 phpmyadmin 中遇到 find/replace 失败的问题。我认为这一定与转义数据库中 URL 中的斜杠的反斜杠有关,而我没有正确说明或转义查询中的反斜杠。
数据在wpiv_postmeta
table的meta_value
列中是这样存储的,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:');
如何转义或取消转义 UPDATE 查询中的斜线?
您必须进行两次转义,因为 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 中遇到 find/replace 失败的问题。我认为这一定与转义数据库中 URL 中的斜杠的反斜杠有关,而我没有正确说明或转义查询中的反斜杠。
数据在wpiv_postmeta
table的meta_value
列中是这样存储的,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:');
如何转义或取消转义 UPDATE 查询中的斜线?
您必须进行两次转义,因为 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://') ...