I have a WordPress website and following a change of theme I have to modify the structure of a thousand links present on about fifty pages. I would like to do it in SQL via PHPMYADMIN.
Is there a way in SQL to remove the end of all my link with the following structure :
- <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/">
In order to only get :
- <a href="https://website.com/cours/les-problemes/">
- <a href="https://website.com/cours/la-division/">
- <a href="https://website.com/cours/mathematiques-larithmetique/">
I tried to use the answer of this topic : MYSQL Replace string between two known strings but I did not manage to find a solution to fit my purpose.
I also thought about doing it in two parts :
1- Remove the content between the ‘/lecon/‘ and the ‘">‘.
2- Then remove completely all the iteration of ‘/lecon/’ of my pages, because they only occur on the links that I want to edit.
But my knowledges in SQL are limited and I have no clue of how to do the first part.
My apologizes for my English.
Thanks in avance for any helps !
2
Answers
On MySQL 8+, we can try using a regex replacement:
Demo
For MySQL < 8 (5.7), without
REGEXP_REPLACE
:DEMO
Using your idea, I removed all from
/lecon/
to the end in STEP 1 and concatenated">
to repair the HTML URL, and then I replacedlecon/
with an empty string in STEP 2.