Как удалить пробел внутри строки при условии, используя SQL? - PullRequest
0 голосов
/ 29 июня 2018

Я ищу вашу поддержку. Я пытаюсь найти и заменить часть строки в URL в базе данных MySQL.

В коде введено более 550 URL-адресов, где мне нужно удалить пробелы.

т.е:.

https://www.poczytaj.pl/ksiazka/historia-national-geographis-splendor-bizancjum, 317145 ? Pp = 5

https://www.poczytaj.pl/ksiazka/stara-akademia-platona-w-poczatkach-epoki-hellenistycznej-ostatni-okres-bogdan-dembinski, 413137 ? Pp = 5

Подскажите, пожалуйста, какой код я должен запустить?

Мое предложение, которое не работает:

UPDATE `h15bpt4rj_posts`
SET `post_content` = replace(post_content, ', ', ',')
WHERE 'post_content' LIKE ', ______?pp=5';

Underscore меняет шесть цифр, которые находятся внутри URL. Можете ли вы помочь мне получить URL с SQL, как: HREF = "https://www.poczytaj.pl/ksiazka/historia-national-geographis-splendor-bizancjum**,317145**?pp=5" https://www.poczytaj.pl/ksiazka/stara-akademia-platona-w-poczatkach-epoki-hellenistycznej-ostatni-okres-bogdan-dembinski,413137?pp=5

Спасибо

Ответы [ 3 ]

0 голосов
/ 29 июня 2018

Спасибо за ваш ответ.

Подскажите, пожалуйста, какой должен быть полный код? После запуска:

UPDATE h15bpt4rj_posts
    SET post_content = replace(post_content, ', ', ',')
    WHERE post_content LIKE '%, ______?pp=5';
никакие строки не затронуты. Кроме того:

UPDATE h15bpt4rj_posts
    SET post_content = replace(post_content, ', ', ',')
    WHERE post_content LIKE '%, ______?pp=5'
WHERE post_content REGEXP ', [0-9]{6}[?]pp=5$';

и

UPDATE h15bpt4rj_posts
    SET post_content = replace(post_content, ', ', ',')
   WHERE post_content REGEXP ', [0-9]{6}[?]pp=5$';

не работают. Извините за простые вопросы, но я впервые с изменениями в БД.

Спасибо.

0 голосов
/ 29 июня 2018

Я получил решение.

UPDATE h15bpt4rj_posts
    SET post_content = replace(post_content, ', ', ',')
   WHERE post_content REGEXP ', [0-9]{6}[?]pp=5';

Спасибо!

0 голосов
/ 29 июня 2018

Не ставьте одинарные кавычки вокруг имен столбцов!

UPDATE h15bpt4rj_posts
    SET post_content = replace(post_content, ', ', ',')
    WHERE post_content LIKE '%, ______?pp=5';

Используйте только одинарные кавычки для констант строки и даты.

Вам также понадобится подстановочный знак в начале шаблона LIKE. В отличие от регулярных выражений, LIKE применяется ко всей строке. Вы также можете использовать:

    WHERE post_content REGEXP ', [0-9]{6}[?]pp=5$';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...