PhpMyAdmin SQL 查找和替换不适用于包含转义字符的 url

Posted

技术标签:

【中文标题】PhpMyAdmin SQL 查找和替换不适用于包含转义字符的 url【英文标题】:PhpMyAdmin SQL Find and replace not working with url that includes escape characters 【发布时间】:2020-08-31 19:41:45 【问题描述】:

我的wp_postmeta 表在 meta_value 列下包含许多 URL,如下所示:

http:\/\/somename.somehost.com\/~someuser\/sites\/example.com\/

我想将整个内容更改为简单的https:\/\/example.com\/

    如何在 phpMyAdmin 中使用查找和替换来做到这一点? 或者如果不可能 >> 我如何通过查询来做到这一点?

    转义反斜杠是否也需要与新的所需 URL 一起使用?

感谢您的建议 :-)

【问题讨论】:

有人吗?希望能得到任何帮助:-) 【参考方案1】:

wp_postmeta 不应包含任何反斜杠(转义字符),除非您确实需要该字符。一个 URL 看起来像

https://example.com/

不是

https:\/\/example.com\/

您是否因为某些应用程序需要转义正斜杠而转义?

要删除现有的单个反斜杠,首先测试通过:

SELECT REPLACE(meta_value, '\\\\/', '/')
    FROM wp_postmeta
    WHERE meta_value LIKE 'http%\\\\/%`
    LIMIT 5;    -- just check a few

如果失败,请仅更改为 \\/ 并重新测试。同样更改下面的更新。

然后做类似的事情

UPDATE wp_postmeta
    SET meta_value = REPLACE(meta_value, '\\\\/', '/')
    WHERE meta_value LIKE 'http%\\\\/%`;

【讨论】:

不——这就是现在的样子,这让我认为它应该是这样的:-) 谢谢你...关于如何实际使用查找替换的任何想法..?我的理解是我应该为每个现有的反斜杠使用另一个反斜杠来替换它?我是否需要找到“https:\\/\\/example.com\\/”然后将其替换为“example.com”? @LiorTalmor - 好的,我添加了REPLACE

以上是关于PhpMyAdmin SQL 查找和替换不适用于包含转义字符的 url的主要内容,如果未能解决你的问题,请参考以下文章

phpmyadmin 不适用于 xdebug、netbeans 和 xampp

PhpMyAdmin 不适用于 .htaccess

通过 PhpMyAdmin 将带撇号的 SQL 数据库导入 MySQL

SQL SELECT 查询不适用于电子邮件地址

XAMPP:Phpmyadmin 不适用于 FastCGI

在单个 MySQL 查询中使用多个临时表(适用于 phpMyAdmin,但不适用于 PHP)