如何在MySQL中搜索并将”http”替换为”https”

本文概述

如果你愿意搜索某些内容并在MySQL中使用查询将其替换为某些内容, 则可能需要使用字符串替换函数(fromt_str, to_strt), 该函数返回字符串str, 其中所有出现的字符串from_str被该字符串替换to_str。搜索from_str时, 它将执行区分大小写的匹配。

用https替换所有http URL

该查询将从给定的表, 选定的列更新, 并在Providen列中搜索第一个值, 并将其替换为新值:

注意

请记住首先测试你的查询, 否则可能会出错。此外, 你可能希望在某些测试沙箱上而不是在生产环境中运行此查询。

/* 
    The simple query that you need to run to
    replace all strings that contains http:// with https://
    is the following:
*/
UPDATE `tableName` SET `columnName` = REPLACE(
    `tableName`.`columnName`, "http://", "https://"
)

小心一点

可能你正在使用的列的内容包含更多的URL(可能是第三方URL), 例如给定的表文章:

id 标题 内容
1 你好 <h1>此图片非常糟糕</ h1> <img src =” http://ourcodeworld.com/some-path/imaginary.png” />, 其他网站的图片为<img src =” http:/ /es.ourcodeworld.com/hola/burritos.png” />
2 世界 <a href=”http://awebsitewithoutssl-that-you-may-want-not-touch.com/url”>你好</a>
3 没有 <a href=”http://ourcodeworld.com/support-deadpool.php”>总裁的死侍</a>

因此, 请记住要准确地提供需要更改的URL模式。例如, 如果es.ourcodeworld不支持HTTPS, 则我们的更改将使该域的图像无法从浏览器中获取, 因此查询将仅替换ourcodeworld.com而不是es.ourcodeworld.com的URL。改成:

/* 
    Change only the URLs of Our Code World
*/
UPDATE `articles` SET `content` = REPLACE(
    `articles`.`content`, "http://ourcodeworld.com", "https://ourcodeworld.com"
)

它将只更新2行, 即1和3:

id 标题 内容
1 你好 <h1>此图片非常糟糕</ h1> <img src =” https://ourcodeworld.com/some-path/imaginary.png” />, 其他网站的图片为<img src =” http:/ /es.ourcodeworld.com/hola/burritos.png” />
2 世界 <a href=”http://awebsitewithoutssl.com/url”>你好</a>
3 没有 <a href=”https://ourcodeworld.com/support-deadpool.php”>总裁的死侍</a>

编码愉快!

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?