我有一个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/
。