Удаление повторяющих записей

DenVeroid

Новичок
Удаление повторяющих записей

Подскажите как правельно составить запрос на удаление повторяющих записей, тоесть имеется несколько записей например

id Title

1 Заголовок 1
2 Заголовок 1
3 Заголовок 1
4 Заголовок 2
5 Заголовок 2


от сюда видно что заголовки повторяются, нужно из этого оставить только одну, тоесть удалить повторяющие записи

поидее должно выглядеть так

id Title

1 Заголовок 1
4 Заголовок 2
 

basboy

Новичок
Для начала надо данные нормально занасить, чтоб повторов не было.

А в твоём случае нужно выбрать все уникальные заголовки с их ИД (используй distinct).

А потом в цикле прогоняй запровы на удаление типа так :
DELETE FROM table WHERE title=$title and title_id!=$title_id

Где $title и $title_id значения из выборки.
 

tf

крылья рулят
DELETE FROM table WHERE id IN (select id from table where count(id)>2 group title)
в принципе должно работать, изв лень проверить, да и в доках по where couta нет, если не работает надо писать более длиныый запрос
а вообще basboy прав (Для начала надо данные нормально занасить, чтоб повторов не было.)
 

DenVeroid

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

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

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

Фанат

oncle terrible
Команда форума
Для начала надо данные нормально занасить, чтоб повторов не было.
-~{}~ 27.10.05 12:29:

ведь каждому пользователю нескажешь воодить постоянно разные запросы, вдруг они гденить совподуть
а скрипту, типа, тоже нельзя сказать? он у тебя такой своевольный?
 

tf

крылья рулят
DenVeroid
Автор оригинала: DenVeroid
ведь каждому пользователю нескажешь воодить постоянно разные запросы, вдруг они гденить совподуть
почему, это твоя работа писать в базу только тебе нужные данные
 

DenVeroid

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

tf

крылья рулят
Код:
SELECT id from test  WHERE id not IN (select id from test group by title)
это он тебе выдаст все ненужные повторяющиеся значения, а скрипт лучше переделай
 

DenVeroid

Новичок
да но там двойной запрос, у меня муэскюэль меньшей версии там не поддерживается двойной запрос, а провайдер нестанет обновять из за этого

а другого варианта нет?
 

tf

крылья рулят
явно не сегодня. сегодня я из этого запроса DELETE переделать немогу)
попробуй их обединение таблиц
 

MuXa247

Новичок
DenVeroid
Проще всего тебе будет создать такую же таблицу и перекинуть данные туда запросом:
[sql]select id, title from table group by title[/sql]
потом поменять таблицы местами
 

zap

Guest
почему бы просто не сделать последнее поле уникальным?
 
Сверху