首页 > 解决方案 > 用另一个替换一些 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。

提前致谢。

标签: mysqlphpmyadmin

解决方案


你可以做一些像瘦这样的事情来找到它们

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 有更多


推荐阅读