查询重写http到https尽管斜线?

时间:2017-09-07 17:44:40

标签: mysql wordpress phpmyadmin

我正在将我的网站从http迁移到https。除了由名为Revolution slider的插件制作的幻灯片外,一切顺利。

我检查了MySQL数据库并找到了这样的条目:

{“background_type”:“image”,“image”:“http:\ / \ / example.com \ / wp-content \ / uploads \ / 2014 \ / 03 \ / Banner_1.jpg”,

通常我会使用NotePad ++或Phpmyadmin并进行搜索替换:

UPDATE x_posts SET y = REPLACE (post_content, 'http://www.example.com', 'https://www.example.com');

但是由于使用:\ / \ /这不能按预期工作。当我进行全局数据库搜索时,我甚至无法找到有问题的域。

是否可以编写查询来修复位于xr_revslider_slides / params中的这些幻灯片?

ps我必须添加空格以防止自动转换为://

2 个答案:

答案 0 :(得分:1)

这是一个理论,但也许您的数据存储带有额外的斜杠而不仅仅是json检索问题?

在这种情况下,

UPDATE x_posts SET y = REPLACE (post_content, 'http:\/\/www.example.com', 'https://www.example.com');

会这样做。

答案 1 :(得分:1)

JSON使用反斜杠转义正斜杠。

MySQL期望使用反斜杠转义查询中的反斜杠,否则反斜杠会被解释为转义字符。

MySQL查询中的文字字符串\写为\\,因此:

UPDATE x_posts 
   SET y = REPLACE (post_content, 'http:\\/\\/www.example.com', 'https:\\/\\/www.example.com');

https://dev.mysql.com/doc/refman/5.7/en/string-literals.html