Замена некоторых URL-адресов другими - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть база данных MySQL 5.7.29, на которой построен сайт. Мне нужно создать запрос, чтобы найти все строки таблицы, содержащие строки, такие как

https://example.com/index.php?topic=7989.0   

или аналогичные, и заменить их на

https://example.com/my-redirect-page/?7989.0

Подстановочный знак здесь - это? это может быть что-то вроде 1010 *

Моя проблема в том, что мне нужно изменить только этот URL, если вокруг него также есть текстовое содержимое.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Вы можете сделать что-то вроде тонкого, чтобы найти их

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 имеет гораздо больше

1 голос
/ 10 февраля 2020

Знак вопроса не нуждается в экранировании.

Но 'https://example.com/index.php?topic=7989.0' не LIKE '%example.com\?topic%', поскольку знак вопроса не сразу следует за именем хоста.

Попробуйте :

...
post_content LIKE '%example.com/index.php?topic%'
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...