MySQL как удалить строку?

12
I
На сайте с 22.10.2012
Offline
114
753

Помогите, кто в теме: надо через phpmyadmin в базе MySQL удалить все строки, заключенные между <h2>....</h2>

Сам заголовок и теги.

Чтобы вырезать или заменить конкретный текст нашел конструкцию:

UPDATE wp_posts SET post_content = REPLACE (post_content, 'Текст который нужно заменить', 'новый текст');

но ей можно вырезать только сам тег, а как вырезать еще и текст между тегами если он везде естественно разный? Это реально?

Единственный хостинг, который предоставляет защиту от DDoS вплоть до L7, а не L3-L4 всего за 450 руб: https://adminvps.ru/vps/vps_russia.php?aff=17004
S2
На сайте с 08.03.2014
Offline
50
#1

А много таких строк, если ручками удалить всё?

danforth
На сайте с 18.12.2015
Offline
153
#2

iSmel, есть регекспы, но парсить HTML регекспами не совсем умная затея. Какая версия MySQL?

Junior Web Developer
webrock
На сайте с 05.04.2010
Offline
261
#3
iSmel:
Помогите, кто в теме: надо через phpmyadmin в базе MySQL удалить все строки, заключенные между <h2>....</h2>
Сам заголовок и теги.
Чтобы вырезать или заменить конкретный текст нашел конструкцию:
UPDATE wp_posts SET post_content = REPLACE (post_content, 'Текст который нужно заменить', 'новый текст');
но ей можно вырезать только сам тег, а как вырезать еще и текст между тегами если он везде естественно разный? Это реально?

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

Полный аудит сайтов. (/ru/forum/765361)
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#4

Я вам рекомендую, выгрузить таблицу в файлик

Через notepad++ сделать замену через регулярку

И заново залить

Дело 5 минут.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
IL
На сайте с 20.04.2007
Offline
435
#5
LEOnidUKG:
Через notepad++ сделать замену через регулярку

Пожалуй, самый оптимальный и универсальный вариант..

Начиная с MySQL версии 8.0 можно использовать REGEXP_REPLACE https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-replace

Для более ранних версий есть библиотека для MySQL, реализующая PREG https://github.com/mysqludf/lib_mysqludf_preg#readme

но вряд ли имеет смысл её устанавливать для разовой замены, а наличие её на шаредах совсем маловероятно..

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
I
На сайте с 22.10.2012
Offline
114
#6
Sokol2012:
А много таких строк, если ручками удалить всё?

Около 3 тыс, руками не хотелось бы )

---------- Добавлено 03.04.2020 в 14:08 ----------

danforth:
iSmel, есть регекспы, но парсить HTML регекспами не совсем умная затея. Какая версия MySQL?

nginx/1.16.1

Версия клиента базы данных: libmysql - 10.1.38-MariaDB

PHP расширение: mysqli

Версия PHP: 5.4.16

---------- Добавлено 03.04.2020 в 14:09 ----------

LEOnidUKG:
Я вам рекомендую, выгрузить таблицу в файлик
Через notepad++ сделать замену через регулярку
И заново залить

Дело 5 минут.

Похоже придется так... спасибо

CR
На сайте с 16.02.2012
Offline
62
#7

Это не сложно, недавно делал такое.

Если есть возможность сделать копию базы и выдать на нее доступ, я бы мог показать.

Описывать здесь всю процедуру не вижу смысла, это как в той истории, когда знаешь точку, по которой надо ударить кувалдой.

S
На сайте с 30.09.2016
Offline
469
#8

Пройтись по таблице скриптом SELECT/UPDATE – "два пальца об асфальт".

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
IL
На сайте с 20.04.2007
Offline
435
#9

Sitealert, у каждого свой уровень "двупальцевости"..

Для кого-то "пройтись по таблице" да ещё и "скриптом" с какими-то "SELECT/UPDATE" - это абракадабра полная.. )

D
На сайте с 03.07.2004
Offline
128
#10

Я думаю можно такое сделать с помощью UPDATE и строковых функций: SUBSTRING(str,pos,len), LOCATE(substr,str) без всяких регексов одним запросом.

Софт для вебмастеров, программинг (C++/PHP/MySQL, Unix/Win) www.dfservice.com (https://dfservice.com/?afl=27)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий