Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   в бд много одинаковых новостей (dle) (https://forum.antichat.xyz/showthread.php?t=84788)

#Wolf# 14.09.2008 15:04

в бд много одинаковых новостей (dle)
 
здравствуйте . имеется сайт на дле где много одинаковых новостей. есть что нибудь что может решить эту проблему? заранее спасибо

Chaak 14.09.2008 15:12

Цитата:

Запрос внутри бд: DELETE FROM dle_news WHERE content LIKE %[Кусочек похожей новости]%
dle_news это имя таблицы
content - текст новости.

NuR 14.09.2008 15:30

Цитата:

Запрос внутри бд: DELETE FROM dle_news WHERE content LIKE %[Кусочек похожей новости]% LIMIT 1
лучше так=)

#Wolf# 14.09.2008 15:54

Хм. Спасибо но немного не то. Там не дубликаты одной новости. Например-
Новость1 (и в бд еще допустим 5 таких новостей с таким же названием)
Новость2 (и в бд еще 5 таких новостей с таким же названием)
Нужно удалить дубликаты и чтоб осталась 1 оригинальная.
Новостей всего около 30 000. Вручную нереально перебирать

NuR 14.09.2008 16:43

конечно я не имею понятия какая структура таблицы но все же. делать будем в 3 этапа=)
если заголовки статей хранаяться в отделном столбце то зб, тоесть структура такова:
id-label-text ну и еще дх полей...
вот если label это заголовок статьи, и они встречаються не уникальные то делаем так:

создаем 1 временную табличку, в 1 полем, назовем id, таблу назовем ids

копируем в нее ид уникальных статей
insert into ids (id)
SELECT DISTINCT
id
FROM
dle_news
GROUP BY label


а потом

delete from dle_news where id not in (select id from ids)
если не понятно стукни в аську объясню=)

[Raz0r] 14.09.2008 21:30

вот хороший пост по теме
_http://www.mojbred.com/706.html

#Wolf# 16.12.2008 16:30

ап. проблема до сих пор не решена. еще раз повторюсь что я не знаю ид уник новостей. их очень много.
зы бд уже 60к новостей
и еще . например
-новость №1
-новость №1 2008
такие тоже желательно бы поудалять.
я в полном недоумении
думаю что только можно решить этот вопрос через поиск определенногопроцента совпадения в названиях.(Т.е. если в названии новости совпадают 3-4 слова и более, то добавит эти новости в список удаления, после чего я уже сам посмотрю, что в этом списке надо удалить,а что нет...)
но к сожалению данную идею реализовать не могу т.к не мой уровень(
заранее благодарен

limpompo 16.12.2008 18:28

Ну создай скрипт который будет выводить дубликаты

select * from dle_post where title LIKE '%новость №1%'

далее выбираешь что удалить и удаляешь
DELETE FROM dle_post WHERE id = (id новости которую надо удалить)

nonamez 16.12.2008 19:50

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

#Wolf# 17.12.2008 02:22

мля..вы не понимаете
вот наглядный пример
_pswarez.net/index.php?newsid=54997 - новость Перевозчик 3 / Transporter 3 (2008)
смотрим поле Другие новости по теме:
посмотрите чем отличаются от этой
Перевозчик 3 Transporter 3 (2008) TS
Перевозчик 3 / Transporter 3 (2008) DVDRip+700Mb
Перевозчик 3 / Transporter 3 (2008) DVDRip
Перевозчик 3. Transporter 3 2008/TS
Перевозчик 3 / Transporter 3 (2008) DVDRip

и это только 5 первых похожих. думаю там их гораздо больше
и подобных новостей много. фильмы и софт.
и ПОЭТОМУ ИД уникальных новостей не знаю. прочитайте еще раз про идею процентного соотношения.


Время: 06:35