Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Как составить MySQL запрос на удаление новостей из определенных категорий?

Как составить MySQL запрос на удаление новостей из определенных категорий?


     19.12.2022    Все вопросы » MySQL    498

вопрос
Доброго времени, прошу помощи в составлении mysql запроса. Выношу часть сайта на отдельный домен, поэтому для миграции хочу удалить часть категорий с имеющимися в них новостями. Т.е. надо удалить из таблицы dle_post все новости из категорий id:1-20, а новости с категориями 21-30 остались. И нужно ли удалять что то из dle_post_extras?

Ответа пока нет


8 комментариев

LazyDev
PHP-developer

LazyDev - 19 декабря 2022 12:46 -

В редактировании новостей в поиске выбираете категории и удаляете их.

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

AlexSilver
Юзер

AlexSilver - 19 декабря 2022 15:29 -

Надо удалить свыше 300 тысяч новостей(в условных категориях Id:1-20). Поэтому я и хочу это сделать через sql запрос. Оставшиеся 20 тысяч новостей(в условных категориях Id:21-30) хочу перенести на другой сайт/домен с этой БД.

lutskboy
Эксперт

lutskboy - 20 декабря 2022 22:34 -

DELETE dle_post, dle_post_extras FROM dle_post LEFT JOIN dle_post_extras ON dle_post.id = dle_post_extras.news_id WHERE dle_post.category REGEXP [[:<:]](1|2|3)[[:>:]]
можно еще dle_post_extras_cats добавить и другие

AlexSilver
Юзер

AlexSilver - 21 декабря 2022 09:43 -

lutskboy, ругается на символы:
Неожиданный символ. (near "[" at position 145)
Неожиданный символ. (near "[" at position 146)
Ожидалось имя переменной. (near "<" at position 148)
Ожидалось имя переменной. (near "]" at position 150)
Неожиданный символ. (near "]" at position 151)
Неожиданный символ. (near "[" at position 159)
Неожиданный символ. (near "[" at position 160)
Ожидалось имя переменной. (near ">" at position 162)
Ожидалось имя переменной. (near "]" at position 164)
Неожиданный символ. (near "]" at position 165)

lutskboy
Эксперт

lutskboy - 21 декабря 2022 13:00 -

[[:<:]] и [[:>:]]заменить на ([[:punct:]]|^) и ([[:punct:]]|$)

AlexSilver
Юзер

AlexSilver - 21 декабря 2022 16:00 -

lutskboy на команду

DELETE dle_post, dle_post_extras FROM dle_post LEFT JOIN dle_post_extras ON dle_post.id = dle_post_extras.news_id WHERE dle_post.category REGEXP ([[:punct:]]|^)(1|2|3)([[:punct:]]|$)

по прежнему эти скобки не жуёт:
Неожиданный символ. (near "[" at position 146)
Неожиданный символ. (near "[" at position 147)
Ожидалось имя переменной. (near "]" at position 155)
Неожиданный символ. (near "]" at position 156)
Неожиданный символ. (near "[" at position 168)
Неожиданный символ. (near "[" at position 169)
Ожидалось имя переменной. (near "]" at position 177)
Неожиданный символ. (near "]" at position 178)

LazyDev
PHP-developer

LazyDev - 22 декабря 2022 11:00 -

DELETE dle_post, dle_post_extras FROM dle_post LEFT JOIN dle_post_extras ON dle_post.id = dle_post_extras.news_id WHERE dle_post.category REGEXP '([[:punct:]]|^)(1|2|3)([[:punct:]]|$)'

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

AlexSilver
Юзер

AlexSilver - 23 декабря 2022 06:49 -

LazyDev, отлично, сработало!
P.S. купил у вас модуль.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 02.05.2014 kaster1980  MySQL
наверх