- 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% на первый месяц обслуживания! При переходе по баннеру - скидка 25% на первый месяц обслуживания!