MYSQL删除两个已知字符串之间的字符串



我有一个WordPress网站,随着主题的改变,我必须修改大约50页上的1000个链接的结构。我想通过PHPMYADMIN在SQL中完成它。

SQL中有没有一种方法可以用以下结构删除我所有链接的末尾:

- <a href="https://website.com/cours/les-problemes/lecon/s1-2014-2015-mathematiques-les-problemes/">
- <a href="https://website.com/cours/la-division/lecon/s3-2014-2015-mathematiques-la-division-n-nakatani/">
- <a href="https://website.com/cours/mathematiques-larithmetique/lecon/201819-s5-fa-mathematiques-nathalie-nakatani/">

为了只得到:

- <a href="https://website.com/cours/les-problemes/">
- <a href="https://website.com/cours/la-division/">
- <a href="https://website.com/cours/mathematiques-larithmetique/">

我试着使用这个主题的答案:MYSQL替换两个已知字符串之间的字符串,但我没有找到适合我目的的解决方案。

我还考虑过分两部分来做:1-删除">/licon/"one_answers">"之间的内容>'。2-然后完全删除我页面的所有"/licon/"迭代,因为它们只出现在我想要编辑的链接上。但是我在SQL方面的知识是有限的,我不知道如何做第一部分。

我为我的英语道歉。

非常感谢您的帮助!

在MySQL 8+上,我们可以尝试使用正则表达式替换:

SELECT
tag,
REGEXP_REPLACE(tag, '(<a href="https?://(?:[^/]+/){3}).*">', '$1">')
FROM yourTable;

演示

对于MySQL<8(5.7(,无REGEXP_REPLACE:

SELECT REPLACE(CONCAT(TRIM(TRAILING SUBSTRING_INDEX(url, '/lecon/', -1) FROM url), '">'), 'lecon/', '') FROM `your_table`

演示

使用您的想法,我在步骤1中将/lecon/中的所有内容删除到末尾,并连接">以修复HTML URL,然后在步骤2中用空字符串替换lecon/

最新更新