mysql - 用另一个替换一些 URL
问题描述
我有一个建立网站的 MySQL 5.7.29 数据库。我需要构造一个查询来查找所有包含行的表行,例如
https://example.com/index.php?topic=7989.0
或类似的并将它们替换为
https://example.com/my-redirect-page/?7989.0
这里的通配符是 ?topic=7989.0 因为这可以是 ?topic=1234 甚至 ?topic=3456.0#anchor
我可以使用这个(感谢下面的'sticky bit')显示它们出现在(在PHPMyAdmin中)的行:
SELECT * FROM `abc_posts` WHERE `post_content` LIKE '%example.com\index.php?topic%'
我的问题是,当它周围还有文本内容时,我只需要更改该 URL。
提前致谢。
解决方案
你可以做一些像瘦这样的事情来找到它们
SELECT 'https://example.com/index.php?topic=7989.0'
WHERE 'https://example.com/index.php?topic=7989.0' REGEXP 'example.com/index.php?topic=';
这将找到所有行。但是要替换它,您还必须告诉您使用哪个数据库版本 mysql 5.x 没有很多正则表达式功能 mariadb 和 mysql 8 有更多
推荐阅读
- excel - 后期绑定函数的问题
- firebase - Firebase:在开始交易之前检查参考是否存在是否足够好
- go - 如何找到 Go 模块源缓存?
- android - 使用新的 Android X 进行单元测试
- vba - 无法从规则中的代码重命名和删除附件
- java - 避免在基于工厂的通用 MVP 框架中进行强制转换
- windows - 在 notpad.exe PE 标头中找不到 AddressOfEntryPoint
- javascript - 如何在打字稿中描述一个简单的 Just 函子的接口?
- r - 如何在网格中绘制多个时间序列图,每个图都有两个 y 轴?
- python - TensorFlow Jupyter Notebook 中的 Matplotlib