本文概述
如果你愿意搜索某些内容并在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> |
编码愉快!