Сделано в Раскрутке

Архив эхоконференции RU.PHP

- RU.PHP ------------------------------------------------------------- RU.PHP -
 Msg  : #12037 [566]
 От   : Andrew Lening                 2:5026/49.11        06 января 05, 01:53
 Кому : Anton Toporow                                     06 января 05, 19:59
 Тема : Подаскажите наиболее оптимальный...
-------------------------------------------------------------------------------
   Hi, Anton!

 AT> Подскажите наиболее оптимальный алгоритм поиска одинаковых
 AT> записей в MySQL таблице и их удаление...

 AT> Можноли решить и как решить SQL запросами... или как там луче =)
Стыдно таких вещей не знать :-)

Допустим, есть таблица с полями id, A, B, X, Y в которой надо искать записи с
повторяющимися парами значений X, Y. (Предполагаем, что тебя не все поля
интересуют. Если у тебя АБСОЛЮТHО одинаковые записи - значит ты просто напрасно
их туда суешь :-) ) Тогда ваяем запрос:

select X, Y, count(*)
from MyTable
group by X, Y
having count(*)>1

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

По каким уж критериям ты их будешь сносить - дело хозяйское, ты этого не сказал
:-) Можно, допустим, так:

select min(id), X, Y, count(*)
from MyTable
group by X, Y
having count(*)>1

и удалять все записи у которых X=x', Y=y' и id>min(id)' (со штрихом - данные из
предыдущего запроса). Если что непонятно - опиши подробнее задачу.

   Bye.
--- carpe diem
 * Origin: это - часть плана (2:5026/49.11)


При переходе по баннеру - скидка 25% на первый месяц обслуживания!
Самый простой способ получить ROOT-доступ
При переходе по баннеру - скидка 25% на первый месяц обслуживания!